39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
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
|
|
>;
|