import { z } from "zod"; export const AGENT_PSD_RENDER_TASK_POLL_AFTER_MS = 1500; const textPositionOffsetSchema = z.object({ offsetX: z.number().min(-5000).max(5000).optional(), offsetY: z.number().min(-5000).max(5000).optional(), }); export const agentPsdTemplateRenderRequestSchema = z.object({ templateId: z.string().trim().min(1), sourceImageUrl: z.string().trim().optional().nullable(), hiddenLayerIds: z.array(z.string().trim().min(1)).default([]), layerOrderIds: z.array(z.string().trim().min(1)).default([]), imageAssignments: z.record(z.string(), z.string()).default({}), imagePlacements: z .record( z.string(), z.object({ scale: z.number().positive().max(8).optional(), offsetX: z.number().optional(), offsetY: z.number().optional(), }) ) .default({}), textAssignments: z.record(z.string(), z.string()).default({}), textColorAssignments: z.record(z.string(), z.string()).default({}), layerPositionOffsets: z .record(z.string(), textPositionOffsetSchema) .default({}), textPositionOffsets: z .record(z.string(), textPositionOffsetSchema) .default({}), }); export type AgentPsdTemplateRenderRequest = z.infer< typeof agentPsdTemplateRenderRequestSchema >;