src/shared/tasks.ts
此代码来自构建时的仓库快照。修改源码后重新构建即可更新。
import { z } from 'zod';
import { listTicketsSchema, ticketIdSchema } from './ticket';
export const exportFiltersSchema = listTicketsSchema.omit({
page: true,
pageSize: true,
});
export type ExportFilters = z.infer<typeof exportFiltersSchema>;
export const createExportSchema = z.object({ filters: exportFiltersSchema });
export const taskIdSchema = z.object({ id: z.uuid() });
export const reminderScheduleSchema = ticketIdSchema.extend({
version: z.number().int().min(0),
minutes: z.number().int().min(1).max(10080).nullable(),
});
export const taskListSchema = z.object({
page: z.number().int().min(1).max(100000).default(1),
pageSize: z.number().int().min(1).max(50).default(10),
});
export const taskStatusLabels = {
WAITING: '等待执行',
RUNNING: '执行中',
COMPLETED: '已完成',
FAILED: '失败',
} as const;
export const taskKindLabels = {
EXPORT: '工单导出',
REMINDER: '超时提醒',
} as const;
export const MAX_EXPORT_ROWS = 5000;
export const MAX_EXPORT_BYTES = 5 * 1024 * 1024;
export const MAX_TASK_ATTEMPTS = 3;