feat(companies): service + validators + unit tests

This commit is contained in:
Matt Ciaccio
2026-04-24 12:02:08 +02:00
parent 7c408cf975
commit 037f2544e8
5 changed files with 628 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
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>;