Files
v2.admin.gaertan.art/src/schemas/commissionType.ts

55 lines
1.5 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import * as z from "zod/v4";
const rangePattern = /^\d{1,3}\d{1,3}$/;
const optionField = z.object({
optionId: z.string(),
price: z.number().optional(),
pricePercent: z.number().optional(),
priceRange: z
.string()
.regex(rangePattern, "Format must be like '1080'")
.optional(),
});
const extraField = z.object({
extraId: z.string(),
price: z.number().optional(),
pricePercent: z.number().optional(),
priceRange: z
.string()
.regex(rangePattern, "Format must be like '1080'")
.optional(),
});
const customInputsField = z.object({
customInputId: z.string(),
inputType: z.string(),
label: z.string(),
required: z.boolean(),
});
export const commissionTypeSchema = z.object({
name: z.string().min(1, "Name is required. Min 1 character."),
description: z.string().optional(),
options: z.array(optionField).optional(),
extras: z.array(extraField).optional(),
customInputs: z.array(customInputsField).optional(),
});
export type commissionTypeSchema = z.infer<typeof commissionTypeSchema>;
export const commissionOptionSchema = z.object({
name: z.string().min(1, "Name is required"),
description: z.string().optional(),
});
export type CommissionOptionValues = z.infer<typeof commissionOptionSchema>;
export const commissionExtraSchema = z.object({
name: z.string().min(1, "Name is required"),
description: z.string().optional(),
});
export type CommissionExtraValues = z.infer<typeof commissionExtraSchema>;