import { ExecutorOrCreator, ActivityId, DetailObjectTypes, DetailObjectId, UserId } from 'teambition-types'; export interface Locales { en: { title: string; }; zh: { title: string; }; ko: { title: string; }; zh_tw: { title: string; }; ja: { title: string; }; } export interface Voice { source: string; fileType: 'amr'; fileCategory: string; fileName: string; thumbnailUrl: string; previewUrl: string; mimeType: string; downloadUrl: string; fileSize: number; duration: number; fileKey: string; thumbnail: string; } export interface Share { isShareObject: boolean; obj_id: string; url: string; type: string; _type: string; imgUrl: string; title: string; fileName: string; fileType: string; thumbnail: string; mobileShareLink: string; description: string; } export interface ActivitySchema { _boundToObjectId: DetailObjectId; _creatorId: UserId; _id: ActivityId; action: string; boundToObjectType: DetailObjectTypes; content: { robotsource?: string; comment: string; content: string; attachments: File[]; voice: Voice; mentionsArray: string[]; mentions: { [index: string]: string; }; share: Share; attachmentsName: string; creator: string; executor: string; note: string; subtask: string; count: string; dueDate: string; linked: { _id: string; _projectId: string; _objectId: string; objectType: string; title: string; url: string; }; linkedCollection: { _id: string; title: string; objectType: 'collection'; }; uploadWorks: { _id: string; fileName: string; objectType: 'work'; }[]; collection: { _id: string; title: string; objectType: 'collection'; }; work: { _id: string; fileName: string; objectType: 'work'; }; renderMode?: 'markdown' | 'text'; }; created: number; creator: ExecutorOrCreator; rawAction: string; title: string; isComment: boolean; icon: string; creatorName: string; creatorAvatar: string; comment: string; linked: { _id: string; }; locales: Locales; }