FactuGES_ERP/modules/companies/src/common/dto/response/company.response.dto.ts

20 lines
614 B
TypeScript
Raw Normal View History

2026-07-06 10:57:33 +00:00
import { EmailSchema, TinSchema, WebsiteSchema } from "@erp/core";
import { z } from "zod/v4";
export const CompanyStatusResponseSchema = z.enum(["active", "disabled"]);
export const CompanyResponseSchema = z.object({
id: z.uuid(),
legal_name: z.string(),
trade_name: z.string().nullable(),
tin: TinSchema.nullable(),
slug: z.string(),
email: EmailSchema.nullable(),
phone: z.string().nullable(),
website: WebsiteSchema.nullable(),
feat: add proforma customer change evaluation utility - Implemented `evaluateProformaCustomerChange` function to assess changes in customer details for proforma invoices. - Introduced types for customer change details, blockers, field differences, and fiscal targets. - Added utility functions for normalizing text and formatting recipient information. test: add unit tests for customer payment resolver - Created tests for `CustomerPaymentResolver` to validate payment term retrieval and handling of inactive terms. - Ensured proper behavior when clearing payment terms and handling non-existent terms. test: add unit tests for customer default payment term resolver - Developed tests for `CustomerDefaultPaymentTermResolver` to verify default payment term resolution logic. - Included scenarios for creating customers with and without explicit payment term IDs. feat: implement customer default payment term resolver - Created `CustomerDefaultPaymentTermResolver` to manage default payment term resolution during customer creation. - Integrated with company finder and payment resolver services. test: add unit tests for create customer use case - Implemented tests for `CreateCustomerUseCase` to ensure correct handling of payment term IDs during customer creation. - Validated behavior when no explicit payment term ID is provided. test: add unit tests for update customer use case - Developed tests for `UpdateCustomerUseCase` to verify payment term handling during customer updates. - Ensured that inactive payment terms are not assigned and that explicit null values are respected. feat: add dependency injection for customer company services - Implemented DI for customer company dependencies to facilitate service resolution. test: add tests for customer create data utility - Created tests for `buildCustomerCreateData` to validate payment term handling based on user input.
2026-08-17 09:25:34 +00:00
default_payment_term_id: z.uuid().nullable(),
2026-07-06 10:57:33 +00:00
status: CompanyStatusResponseSchema,
});
export type CompanyResponseDTO = z.infer<typeof CompanyResponseSchema>;