feat(plan): add plan category zod schemas
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
27
src/schemas/planCategory.schema.ts
Normal file
27
src/schemas/planCategory.schema.ts
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
const hexColor = z
|
||||||
|
.string()
|
||||||
|
.regex(/^#[0-9a-fA-F]{6}$/, "Barva musí být ve formátu #RRGGBB");
|
||||||
|
|
||||||
|
export const CreatePlanCategorySchema = z.object({
|
||||||
|
label: z
|
||||||
|
.string()
|
||||||
|
.trim()
|
||||||
|
.min(1, "Název je povinný")
|
||||||
|
.max(100, "Maximálně 100 znaků"),
|
||||||
|
color: hexColor,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const UpdatePlanCategorySchema = z
|
||||||
|
.object({
|
||||||
|
label: z.string().trim().min(1, "Název je povinný").max(100).optional(),
|
||||||
|
color: hexColor.optional(),
|
||||||
|
is_active: z.boolean().optional(),
|
||||||
|
})
|
||||||
|
.refine((v) => Object.keys(v).length > 0, {
|
||||||
|
message: "Nic k aktualizaci",
|
||||||
|
});
|
||||||
|
|
||||||
|
export type CreatePlanCategoryInput = z.infer<typeof CreatePlanCategorySchema>;
|
||||||
|
export type UpdatePlanCategoryInput = z.infer<typeof UpdatePlanCategorySchema>;
|
||||||
Reference in New Issue
Block a user