import type { ActivityTypeId } from "../../types/ActivityTypeId"; import type { DateTimeTzString } from "../../types/DateTimeTzString"; import type { ActivityProject } from "../ActivityProject"; import type { User } from "../User"; import type { ActivityAttachmentFile } from "./ActivityAttachmentFile"; import type { ActivityExternalFileLinks } from "./ActivityExternalFileLinks"; import type { ActivityGitRepository } from "./ActivityGitRepository"; import type { ActivityMilestone } from "./ActivityMilestone"; import type { ActivityNotification } from "./ActivityNotification"; import type { ActivitySharedFile } from "./ActivitySharedFile"; import type { ActivityTypeComment } from "./ActivityTypeComment"; import type { ActivityTypeIssueChange } from "./ActivityTypeIssueChange"; import type { ActivityTypeProjectGroupParty } from "./ActivityTypeProjectGroupParty"; import type { ActivityTypeProjectGroupProjectActivities } from "./ActivityTypeProjectGroupProjectActivities"; interface ActivityBase { readonly id: number; readonly project?: ActivityProject; readonly type: ActivityTypeId; readonly content: unknown; readonly notifications?: ActivityNotification[]; readonly createdUser?: User; readonly created?: DateTimeTzString; } export interface ActivityTypeIssueCreated extends ActivityBase { readonly type: 1; readonly content: { readonly id: number; readonly key_id: number; readonly summary: string; readonly description: string; }; } export interface ActivityTypeIssueUpdated extends ActivityBase { readonly type: 2; readonly content: { readonly id: number; readonly key_id: number; readonly summary: string; readonly description: string; readonly comment: ActivityTypeComment; readonly changes: ActivityTypeIssueChange[]; readonly attachments: ActivityAttachmentFile[]; readonly shared_files: ActivitySharedFile[]; readonly external_file_links: ActivityExternalFileLinks[]; }; } export interface ActivityTypeIssueCommented extends ActivityBase { readonly type: 3; readonly content: { readonly id: number; readonly key_id: number; readonly summary: string; readonly description: string; readonly comment: ActivityTypeComment; readonly changes: ActivityTypeIssueChange[]; readonly attachments: ActivityAttachmentFile[]; readonly shared_files: ActivitySharedFile[]; readonly external_file_links: ActivityExternalFileLinks[]; }; } export interface ActivityTypeIssueDeleted extends ActivityBase { readonly type: 4; readonly content: { readonly id: number; readonly key_id: number; }; } export interface ActivityTypeWikiCreated extends ActivityBase { readonly type: 5; readonly content: { readonly id: number; readonly name: string; readonly content: string; readonly diff: null; readonly version: null; readonly attachments: ActivityAttachmentFile[]; readonly shared_files: ActivitySharedFile[]; }; } export interface ActivityTypeWikiUpdated extends ActivityBase { readonly type: 6; readonly content: { readonly id: number; readonly name: string; readonly content: string; readonly diff: string; readonly version: number; readonly attachments: ActivityAttachmentFile[]; readonly shared_files: ActivitySharedFile[]; }; } export interface ActivityTypeWikiDeleted extends ActivityBase { readonly type: 7; readonly content: { readonly id: number; readonly name: string; readonly content: string; readonly diff: null; readonly version: null; readonly attachments: ActivityAttachmentFile[]; readonly shared_files: ActivitySharedFile[]; }; } export interface ActivityTypeFileAdded extends ActivityBase { readonly type: 8; readonly content: ActivitySharedFile; } export interface ActivityTypeFileUpdated extends ActivityBase { readonly type: 9; readonly content: ActivitySharedFile; } export interface ActivityTypeFileDeleted extends ActivityBase { readonly type: 10; readonly content: ActivitySharedFile; } export interface ActivityTypeSVNCommitted extends ActivityBase { readonly type: 11; readonly content: { readonly rev: number; readonly comment: string; }; } export interface ActivityTypeGitPushed extends ActivityBase { readonly type: 12; readonly content: { readonly repository: { readonly id: number; readonly name: string; readonly description: null; }; readonly change_type: "create" | "update" | "delete"; readonly revision_type: "commit"; readonly ref: string; readonly revision_count: number; readonly revisions: { readonly rev: string; readonly comment: string; }[]; }; } export interface ActivityTypeGitRepositoryCreated extends ActivityBase { readonly type: 13; readonly content: { readonly repository: ActivityGitRepository; }; } export interface ActivityTypeIssueMultiUpdated extends ActivityBase { readonly type: 14; readonly content: { readonly tx_id: number; readonly comment: { readonly content: string; }; readonly link: { readonly id: number; readonly key_id: number; readonly title: string; readonly comment: ActivityTypeComment; }[]; readonly changes: { readonly field: "assigner" | "component" | "issueType" | "limitDate" | "milestone" | "priority" | "resolution" | "status" | "version"; readonly new_value: string; readonly type: "standard"; }[]; }; } export interface ActivityTypeProjectUserAdded extends ActivityBase { readonly type: 15; readonly content: { readonly users: User[]; readonly group_project_activities: ActivityTypeProjectGroupProjectActivities[]; readonly comment: string; }; } export interface ActivityTypeProjectUserDeleted extends ActivityBase { readonly type: 16; readonly content: { readonly users: User[]; readonly group_project_activities: ActivityTypeProjectGroupProjectActivities[]; readonly comment: string; }; } export interface ActivityTypeCommentNotificationAdded extends ActivityBase { readonly type: 17; readonly content: { readonly id: number; readonly key_id: number; readonly summary: string; readonly description: string; readonly comment: ActivityTypeComment; readonly changes: []; readonly attachments: ActivityAttachmentFile[]; readonly shared_files: ActivitySharedFile[]; readonly external_file_links: ActivityExternalFileLinks[]; }; } export interface ActivityTypePullRequestAdded extends ActivityBase { readonly type: 18; readonly content: { readonly id: number; readonly number: number; readonly summary: string; readonly description: string; readonly comment?: ActivityTypeComment; readonly changes: []; readonly issue?: { readonly id: number; readonly key_id: number; readonly issue_key: string; readonly summary: string; readonly description: string; }; readonly repository: { readonly id: number; readonly name: string; readonly description: string; }; }; } export interface ActivityTypePullRequestUpdated extends ActivityBase { readonly type: 19; readonly content: { readonly id: number; readonly number: number; readonly summary: string; readonly description: string; readonly comment: ActivityTypeComment; readonly changes: { readonly field: "deleteBranch" | "status" | "assignee" | "description"; readonly new_value: string; readonly old_value: string; }[]; readonly issue?: { readonly id: number; readonly key_id: number; readonly issue_key: string; readonly summary: string; readonly description: string; }; readonly repository: { readonly id: number; readonly name: string; readonly description: string; }; }; } export interface ActivityTypeCommentAddedonPullRequest extends ActivityBase { readonly type: 20; readonly content: { readonly id: number; readonly number: number; readonly summary: string; readonly description: string; readonly comment?: ActivityTypeComment; readonly changes: []; readonly issue?: { readonly id: number; readonly key_id: number; readonly issue_key: string; readonly summary: string; readonly description: string; }; readonly repository: { readonly id: number; readonly name: string; readonly description: string; }; }; } export interface ActivityTypePullRequestDeleted extends ActivityBase { readonly type: 21; readonly content: unknown; } export interface ActivityTypeMilestoneCreated extends ActivityBase { readonly type: 22; readonly content: ActivityMilestone; } export interface ActivityTypeMilestoneUpdated extends ActivityBase { readonly type: 23; readonly content: { readonly id: number; readonly name: string; readonly changes: { readonly field: "description" | "startDate" | "referenceDate"; readonly new_value: string; readonly old_value: string; }[]; }; } export interface ActivityTypeMilestoneDeleted extends ActivityBase { readonly type: 24; readonly content: ActivityMilestone; } export interface ActivityTypeProjectGroupAdded extends ActivityBase { readonly type: 25; readonly content: { readonly parties: ActivityTypeProjectGroupParty[]; }; } export interface ActivityTypeProjectGroupDeleted extends ActivityBase { readonly type: 26; readonly content: { readonly parties: ActivityTypeProjectGroupParty[]; }; } export {};