import { z } from "zod/v4"; import { ConfigurationSchema } from "./access/access-definition"; export const PrinterConfigurationInputSchema = z.strictObject({ profileId: z.uuid(), printerId: z.uuid(), connection: z.enum(["usb", "network"]), isDefault: z.boolean(), state: ConfigurationSchema, notes: z.string().trim().max(4000).nullable(), }); export type PrinterConfigurationInput = z.infer; export class PrinterConfigurationError extends Error { constructor(public readonly code: string) { super(code); } } export const PRINTER_STATE_TRANSITIONS = { pending: ["pending", "configured", "never_configured"], configured: ["configured", "removal_pending"], removal_pending: ["removal_pending", "removed"], removed: ["removed"], never_configured: ["never_configured"], } as const;