import { z } from "zod";
const progressJobStatusSchema = z.enum(["pending", "running", "completed", "failed", "cancelled"]);
const createProgressJobSchema = z.object({
  jobType: z.string().min(1).max(100),
  name: z.string().min(1).max(255),
  description: z.string().max(1e3).optional(),
  totalCount: z.number().int().positive().optional(),
  cancellable: z.boolean().optional().default(false),
  meta: z.record(z.string(), z.unknown()).optional(),
  parentJobId: z.string().uuid().optional(),
  partitionIndex: z.number().int().min(0).optional(),
  partitionCount: z.number().int().positive().optional()
});
const updateProgressSchema = z.object({
  processedCount: z.number().int().min(0).optional(),
  progressPercent: z.number().int().min(0).max(100).optional(),
  totalCount: z.number().int().positive().optional(),
  etaSeconds: z.number().int().min(0).optional(),
  meta: z.record(z.string(), z.unknown()).optional()
});
const completeJobSchema = z.object({
  resultSummary: z.record(z.string(), z.unknown()).optional()
});
const failJobSchema = z.object({
  errorMessage: z.string().max(2e3),
  errorStack: z.string().max(1e4).optional()
});
const listProgressJobsSchema = z.object({
  status: z.string().optional(),
  jobType: z.string().optional(),
  parentJobId: z.string().uuid().optional(),
  includeCompleted: z.enum(["true", "false"]).optional(),
  completedSince: z.string().optional(),
  page: z.coerce.number().min(1).default(1),
  pageSize: z.coerce.number().min(1).max(100).default(20),
  search: z.string().optional(),
  sortField: z.enum(["createdAt", "startedAt", "finishedAt"]).optional(),
  sortDir: z.enum(["asc", "desc"]).optional()
});
export {
  completeJobSchema,
  createProgressJobSchema,
  failJobSchema,
  listProgressJobsSchema,
  progressJobStatusSchema,
  updateProgressSchema
};
//# sourceMappingURL=validators.js.map
