Files
Arkie-Library-Frontend/src/types/post.ts
2026-05-26 12:07:13 +08:00

63 lines
1.2 KiB
TypeScript

export type PostLocaleCode = "zh" | "en" | "ja" | "ko" | "vi" | "id" | "ms";
export type PostType =
| "image"
| "video"
| "music"
| "ppt"
| "pdf"
| "link"
| "text"
| "archive";
export type PostTypeFilter = PostType | "all";
export type AttachmentKind = "image" | "video" | "document";
export type PostLocaleTexts = {
text: string;
};
export type PostLocalizations = Record<PostLocaleCode, PostLocaleTexts>;
export type Attachment = {
id: string;
kind: AttachmentKind;
url: string;
mime: string;
filename: string;
sizeBytes: number;
width?: number;
height?: number;
durationSec?: number;
posterUrl?: string;
thumbnailUrl?: string;
};
export type Post = {
id: string;
postType?: PostType | string;
categoryId: number;
categorySlug: string;
language: string;
sourceLanguage?: string;
text?: string;
localizations?: Partial<PostLocalizations>;
attachments: Attachment[];
isRecommended: boolean;
publishedAt: string;
updatedAt?: string;
createdAt?: string;
tags?: string[];
};
export type PostListResponse = {
items: Post[];
nextCursor?: string;
};
export type PostDownloadResponse = {
ok: true;
};
export type PostScope = { kind: "all" } | { kind: "category"; slug: string };