import { MultiLanguageString, Timestamp, } from './common'; import { UserId } from './user'; import { StudentId} from './student'; import { ClassId} from './class'; export type AnnouncementId = string; export type AnnouncementType = "alert" | "emergency" | "memo" | "news" | "newsletter" | "class" | "other"; /** * dbRef: announcements/{sid}/announcements/{announcementId} & announcements/{sid}/drafts/{announcementId} * @deprecated */ export interface AnnouncementV2 { id: AnnouncementId; data: { attachmentFilename: string; attachmentUrl: string; createdAt: Timestamp; createdBy: UserId; descriptionClean: string; descriptionHtml: string; hasAttachment: boolean; hasBeenSent: boolean; id: AnnouncementId; sentAt: Timestamp; titleFurigana: string; titleRomaji: string; type: AnnouncementType; updatedAt: Timestamp; updatedBy: UserId; title: MultiLanguageString; content: MultiLanguageString; }; metadata: { classes: { [classId: ClassId]: boolean; }; hasBeenSent: boolean; id: AnnouncementId; readBy: { [userId: UserId]: Timestamp; }; sentTo: { [userId: UserId]: boolean; }; sentToCount: number; students: { [studentId: StudentId]: boolean; }; studentsCount: number; type: AnnouncementType; unreadCount: number; }; } /** * dbRef: announcements/{sid}/sentTo/{announcementId}/{uid} * @deprecated */ export interface AnnouncementSentToV2 { id: AnnouncementId; sentAt: Timestamp; type: AnnouncementType; read?: Timestamp | boolean; titleRomaji?: string; titleFurigana?: string; // readAt: Timestamp | boolean; // title: MultiLanguageString; } export interface AnnouncementList { id: AnnouncementId; type: AnnouncementType; sentAt: Timestamp; readAt?: Timestamp; title: MultiLanguageString | string; }