Files
pn-new-crm/src/lib/validators/companies.ts

27 lines
1.0 KiB
TypeScript
Raw Normal View History

import { z } from 'zod';
import { baseListQuerySchema } from '@/lib/api/route-helpers';
export const createCompanySchema = z.object({
name: z.string().min(1).max(200),
legalName: z.string().optional(),
taxId: z.string().optional(),
registrationNumber: z.string().optional(),
incorporationCountry: z.string().optional(),
incorporationDate: z.coerce.date().optional(),
status: z.enum(['active', 'dissolved']).optional().default('active'),
billingEmail: z.string().email().optional(),
notes: z.string().optional(),
tagIds: z.array(z.string()).optional().default([]),
});
export const updateCompanySchema = createCompanySchema.partial().omit({ tagIds: true });
export const listCompaniesSchema = baseListQuerySchema.extend({
status: z.enum(['active', 'dissolved']).optional(),
search: z.string().optional(),
});
export type CreateCompanyInput = z.infer<typeof createCompanySchema>;
export type UpdateCompanyInput = z.infer<typeof updateCompanySchema>;
export type ListCompaniesInput = z.infer<typeof listCompaniesSchema>;