Add extras and options CRUD, add sidebar, add kanban board, udpate packages

This commit is contained in:
2026-01-29 16:18:57 +01:00
parent f9c14ed9fb
commit 507e1b9ee4
28 changed files with 2455 additions and 42 deletions

View File

@ -6,14 +6,20 @@ 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(),
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(),
priceRange: z
.string()
.regex(rangePattern, "Format must be like '1080'")
.optional(),
});
const customInputsField = z.object({
@ -29,6 +35,20 @@ export const commissionTypeSchema = z.object({
options: z.array(optionField).optional(),
extras: z.array(extraField).optional(),
customInputs: z.array(customInputsField).optional(),
})
});
export type commissionTypeSchema = z.infer<typeof commissionTypeSchema>
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>;