feat: add Zod validation schemas for all domain routes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
35
src/schemas/projects.schema.ts
Normal file
35
src/schemas/projects.schema.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
export const CreateProjectSchema = z.object({
|
||||
project_number: z.string().nullish(),
|
||||
name: z.string().nullish(),
|
||||
customer_id: z.union([z.number(), z.string()]).transform(v => Number(v)).nullish(),
|
||||
responsible_user_id: z.union([z.number(), z.string()]).transform(v => Number(v)).nullish(),
|
||||
quotation_id: z.union([z.number(), z.string()]).transform(v => Number(v)).nullish(),
|
||||
order_id: z.union([z.number(), z.string()]).transform(v => Number(v)).nullish(),
|
||||
status: z.string().optional().default('aktivni'),
|
||||
start_date: z.string().nullish(),
|
||||
end_date: z.string().nullish(),
|
||||
notes: z.string().nullish(),
|
||||
});
|
||||
|
||||
export const UpdateProjectSchema = z.object({
|
||||
project_number: z.string().nullish(),
|
||||
name: z.string().nullish(),
|
||||
status: z.string().optional(),
|
||||
notes: z.string().nullish(),
|
||||
customer_id: z.union([z.number(), z.string(), z.null()]).optional(),
|
||||
responsible_user_id: z.union([z.number(), z.string(), z.null()]).optional(),
|
||||
quotation_id: z.union([z.number(), z.string(), z.null()]).optional(),
|
||||
order_id: z.union([z.number(), z.string(), z.null()]).optional(),
|
||||
start_date: z.union([z.string(), z.null()]).optional(),
|
||||
end_date: z.union([z.string(), z.null()]).optional(),
|
||||
});
|
||||
|
||||
export const CreateProjectNoteSchema = z.object({
|
||||
content: z.string().nullish(),
|
||||
});
|
||||
|
||||
export type CreateProjectInput = z.infer<typeof CreateProjectSchema>;
|
||||
export type UpdateProjectInput = z.infer<typeof UpdateProjectSchema>;
|
||||
export type CreateProjectNoteInput = z.infer<typeof CreateProjectNoteSchema>;
|
||||
Reference in New Issue
Block a user