import { ForeignKey, JsonProjection } from "oak-domain/lib/types/DataType"; import { Q_DateValue, Q_BooleanValue, Q_NumberValue, Q_StringValue, Q_EnumValue, NodeId, ExprOp, ExpressionKey, JsonFilter } from "oak-domain/lib/types/Demand"; import { MakeAction as OakMakeAction, EntityShape } from "oak-domain/lib/types/Entity"; import { GenericAction } from "oak-domain/lib/actions/action"; import { CosOrigin } from "oak-general-business/lib/types/Config"; import { String, Text, Int, Float, Boolean } from "oak-domain/lib/types/DataType"; type ChunkInfo = { chunkSize: number; partCount: number; uploadId: string; merged: boolean; parts: Array<{ partNumber: number; uploadUrl: string; etag: string; formData?: Record; }>; }; export type OpSchema = EntityShape & { origin: CosOrigin; type: "image" | "video" | "audio" | "file"; bucket?: String<32> | null; objectId?: String<64> | null; tag1?: String<32> | null; tag2?: String<32> | null; filename: String<256>; md5?: Text | null; entity: "article" | "articleMenu" | "sessionMessage" | "user" | string; entityId: String<64>; extra1?: Text | null; extra2?: Object | null; extension?: String<16> | null; size?: Int<8> | null; sort?: Float<22, 10> | null; fileType?: String<128> | null; isBridge?: Boolean | null; uploadState: "success" | "failed" | "uploading"; uploadMeta?: Object | null; applicationId: ForeignKey<"application">; enableChunkedUpload?: Boolean | null; chunkInfo?: ChunkInfo | null; } & { [A in ExpressionKey]?: any; }; export type OpAttr = keyof OpSchema; export type OpFilter = { id: Q_StringValue; $$createAt$$: Q_DateValue; $$seq$$: Q_NumberValue; $$updateAt$$: Q_DateValue; origin: Q_EnumValue; type: Q_EnumValue<"image" | "video" | "audio" | "file">; bucket: Q_StringValue; objectId: Q_StringValue; tag1: Q_StringValue; tag2: Q_StringValue; filename: Q_StringValue; md5: Q_StringValue; entity: Q_EnumValue<"article" | "articleMenu" | "sessionMessage" | "user" | string>; entityId: Q_StringValue; extra1: Q_StringValue; extra2: Object; extension: Q_StringValue; size: Q_NumberValue; sort: Q_NumberValue; fileType: Q_StringValue; isBridge: Q_BooleanValue; uploadState: Q_EnumValue<"success" | "failed" | "uploading">; uploadMeta: Object; applicationId: Q_StringValue; enableChunkedUpload: Q_BooleanValue; chunkInfo: JsonFilter; } & ExprOp; export type OpProjection = { "#id"?: NodeId; [k: string]: any; id?: number; $$createAt$$?: number; $$updateAt$$?: number; $$seq$$?: number; origin?: number; type?: number; bucket?: number; objectId?: number; tag1?: number; tag2?: number; filename?: number; md5?: number; entity?: number; entityId?: number; extra1?: number; extra2?: number | Object; extension?: number; size?: number; sort?: number; fileType?: number; isBridge?: number; uploadState?: number; uploadMeta?: number | Object; applicationId?: number; enableChunkedUpload?: number; chunkInfo?: number | JsonProjection; } & Partial>; export type OpSortAttr = Partial<{ id: number; $$createAt$$: number; $$seq$$: number; $$updateAt$$: number; origin: number; type: number; bucket: number; objectId: number; tag1: number; tag2: number; filename: number; md5: number; entity: number; entityId: number; extra1: number; extension: number; size: number; sort: number; fileType: number; isBridge: number; uploadState: number; applicationId: number; enableChunkedUpload: number; chunkInfo: number; [k: string]: any; } | ExprOp>; export type OpAction = OakMakeAction; export type OpUpdateAction = "update" | string; export {};