import type { AppListResponse, WorkflowOnlineUsersResponse } from '@/models/app' import type { AppModeEnum } from '@/types/app' import type { WorkflowTypeConversionTarget } from '@/types/workflow' import { type } from '@orpc/contract' import { base } from '../base' export type AppListQuery = { page?: number limit?: number name?: string mode?: AppModeEnum tag_ids?: string[] is_created_by_me?: boolean } export const appListContract = base .route({ path: '/apps', method: 'GET', }) .input(type<{ query?: AppListQuery }>()) .output(type()) export const appDeleteContract = base .route({ path: '/apps/{appId}', method: 'DELETE', }) .input(type<{ params: { appId: string } }>()) .output(type()) export const appWorkflowTypeConvertContract = base .route({ path: '/apps/{appId}/workflows/convert-type', method: 'POST', }) .input(type<{ params: { appId: string } query: { target_type: WorkflowTypeConversionTarget } }>()) .output(type()) export const workflowOnlineUsersContract = base .route({ path: '/apps/workflows/online-users', method: 'POST', }) .input(type<{ body: { app_ids: string[] } }>()) .output(type())