import { MultiLanguageString, Timestamp } from './common'; import { FamilyId } from './family'; import { UserId } from './user'; import { Image, Video } from './fileManager'; export declare enum FeedPostSection { POST = "post", DRAFT = "draft" } export declare enum ApiSectionProcess { CREATE_POST = "createPost", CREATE_DRAFT = "createDraft", UPDATE_POST = "updatePost", POST_DRAFT = "postDraft", DELETE_DRAFT = "deleteDraft", DELETE_POST = "deletePosted" } export declare enum SendTo { GUARDIAN = "guardian", PARENT = "parent", STUDENT = "student", TEACHER = "teacher" } export declare enum FeedCategory { POST = "post", EVENT = "event", ATTENDANCE = "attendance", HEALTH = "health" } export declare enum FeedType { SCHOOL = "school", CLASS = "class", HEIGHT_WEIGHT = "heightWeight", TEMPERATURE = "temperature" } /** * DB: feed/${sid}/byFamily/${fid} */ export interface FeedFamilyItem { id: string; type: FeedType; category: FeedCategory; starred: boolean; pinned: boolean; postedAt: Timestamp; title: MultiLanguageString | string; summary: MultiLanguageString | string; images?: { [index: number]: Image; }; videos?: { [index: number]: Video; }; extra?: { [id: string]: any; }; } /** * DB: /feedPosts/{sid}/posted * DB: /feedPosts/{sid}/draft */ export interface FeedPostV2 { postId: string; feedId?: string; type: FeedType; postTo: string; posted?: boolean; pinToTop: boolean; postedAt: Timestamp | null; createdBy: UserId; createdAt: Timestamp; titleJa: string; titleEn: string; textJa: string; textEn: string; images?: Image[]; familyPostTo: { [fid: FamilyId]: boolean; }; } /** * DB: /feed/{sid}/byFamily/{fid} */ export interface FeedItemV2 { id: string; type: FeedType; category: FeedCategory; starred?: boolean; pinned?: boolean; postedAt: Timestamp | null; createdAt?: Timestamp; updatedAt?: Timestamp; title?: MultiLanguageString | string; summary?: MultiLanguageString | string; content?: MultiLanguageString | string; images?: Image[]; extra: { id?: string; images?: Image[]; textEn?: string; textJa?: string; titleEn?: string; titleJa?: string; dateStart?: number; dateEnd?: number; color?: string; studentId?: string; height?: number; weight?: number; temperature?: number; dateTime?: number; }; } export interface FeedFamilyItemV2 extends FeedItemV2 { extra: { id?: string; images?: Image[]; textEn: string; textJa: string; titleEn: string; titleJa: string; dateStart?: number; dateEnd?: number; color?: string; }; }