/** * @$id: ResolveResourceRequest */ export interface ResolveResourceRequest { // tid, cid, rid, sid id?: string; uid?: string; eid?: string; cid?: string; rid?: string; select?: string[]; include?: string[]; deleted?: boolean; } /** * @$id: GetResourceRequest */ export interface GetResourceRequest extends HasSelection, HasFilter { id: string; } /** * @$id: DeleteResourceRequest */ export interface DeleteResourceRequest extends GetResourceRequest {} /** * @$id: UndeleteResourceRequest */ export interface UndeleteResourceRequest extends GetResourceRequest {} /** * @$id: PurgeResourceRequest */ export interface PurgeResourceRequest extends GetResourceRequest {} interface ModifyResourceRequest extends GetResourceRequest { data: T; } interface ActionResponse { status?: number; code?: string | number; message?: string; detail?: Record; data?: T; metadata?: Record; } export interface GeneralActionResponse { status?: number; code?: string | number; message?: string; detail?: Record; data?: any; metadata?: Record; } interface HasOnConflict { onConflictFields?: string[]; onConflictAction?: 'ignore' | 'merge'; onConflictMergeFields?: string[]; onConflictExcludeFields?: string[]; } interface HasPagination { pageSize?: number; pageIndex?: number; pageNumber?: number; limit?: number; offset?: number; order?: string[]; } interface HasFilter { ids?: string[]; search?: string; filter?: string; filters?: string[]; deleted?: boolean; } interface HasSelection { include?: string[]; exclude?: string[]; select?: string[]; } /** * @$id: ListResourceRequest */ export interface ListResourceRequest extends HasPagination, HasFilter, HasSelection {} /** * @$id: ListResourceResponse */ export interface ListResourceResponse { data: T[]; total: number; } /** * @$id: CountResourceRequest */ export interface CountResourceRequest extends HasFilter {} /** * @$id: SetStateRequest */ export interface SetStateRequest extends GetResourceRequest { state: string; status?: string; comment?: string; metadata?: Record; } export interface SetStateResponse extends GeneralActionResponse {} export interface CreateResourceRequest extends ModifyResourceRequest, GetResourceRequest, HasOnConflict { // returning?: boolean; // extends ModifyResourceRequest 会导致类型过于复杂 // data: T; upsert?: boolean; } /** * @$id: CreateAnyResourceRequest */ export interface CreateAnyResourceRequest extends CreateResourceRequest {} export interface UpdateResourceRequest extends ModifyResourceRequest {} /** * @$id: PatchResourceRequest */ export interface UpdateAnyResourceRequest extends UpdateResourceRequest {} export interface PatchResourceRequest extends ModifyResourceRequest {} /** * @$id: PatchAnyResourceRequest */ export interface PatchAnyResourceRequest extends PatchResourceRequest {} export interface ImportResourceRequest extends HasOnConflict { data: T[]; } /** * @$id: ImportAnyResourceRequest */ export interface ImportAnyResourceRequest extends ImportResourceRequest {} export interface ImportResourceResponse { total: number; } /** * @$id: AssignOwnerRequest */ export interface AssignOwnerRequest extends GetResourceRequest { ownerId: string; ownerType: string; } /** * @$id: AssignOwnerResponse */ export interface AssignOwnerResponse extends GeneralActionResponse {} /** * @$id: ClaimOwnerRequest */ export interface ClaimOwnerRequest extends GetResourceRequest { userId?: string; } /** * @$id: ClaimOwnerResponse */ export interface ClaimOwnerResponse extends GeneralActionResponse {} /** * @$id: ReleaseOwnerRequest */ export interface ReleaseOwnerRequest extends GetResourceRequest {} /** * @$id: ReleaseOwnerResponse */ export interface ReleaseOwnerResponse extends GeneralActionResponse {} /** * @$id: GeneralResponse */ export interface GeneralResponse { status?: number; code?: string | number; message?: string; detail?: Record; metadata?: Record; data?: T; }