metis-desk/modules/companies/src/api/domain/printer-configuration-values.ts

29 lines
852 B
TypeScript
Raw Normal View History

2026-10-05 15:01:32 +00:00
import { z } from "zod/v4";
import { ConfigurationSchema } from "./access/access-definition";
2026-10-10 10:01:58 +00:00
2026-10-05 15:01:32 +00:00
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(),
});
2026-10-10 10:01:58 +00:00
2026-10-05 15:01:32 +00:00
export type PrinterConfigurationInput = z.infer<typeof PrinterConfigurationInputSchema>;
2026-10-10 10:01:58 +00:00
2026-10-05 15:01:32 +00:00
export class PrinterConfigurationError extends Error {
constructor(public readonly code: string) {
super(code);
}
}
2026-10-10 10:01:58 +00:00
2026-10-05 15:01:32 +00:00
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;