2025-07-21 14:42:53 +08:00

25 lines
1.1 KiB
TypeScript

export type UploadTask = {
uri: string;
filename: string;
status: 'pending' | 'uploading' | 'success' | 'failed' | 'skipped';
progress: number; // 0-100
file_id?: string; // 后端返回的文件ID
created_at: number; // unix timestamp
};
export interface DatabaseInterface {
initUploadTable(): Promise<void>;
insertUploadTask(task: Omit<UploadTask, 'created_at'>): Promise<void>;
getUploadTaskStatus(uri: string): Promise<UploadTask | null>;
updateUploadTaskStatus(uri: string, status: UploadTask['status'], file_id?: string): Promise<void>;
updateUploadTaskProgress(uri: string, progress: number): Promise<void>;
getUploadTasks(): Promise<UploadTask[]>;
cleanUpUploadTasks(): Promise<void>;
getUploadTasksSince(timestamp: number): Promise<UploadTask[]>;
exist_pending_tasks(): Promise<boolean>;
filterExistingFiles(fileUris: string[]): Promise<string[]>;
setAppState(key: string, value: string | null): Promise<void>;
getAppState(key: string): Promise<string | null>;
executeSql(sql: string, params?: any[]): Promise<any>;
}