Uecko_ERP/modules/customers/src/web/create/utils/build-customer-create-payload.ts
2026-04-04 12:44:26 +02:00

30 lines
1.0 KiB
TypeScript

import { UniqueID } from "@repo/rdx-ddd";
import type { CustomerCreateForm, CustomerCreatePayload } from "../entities";
/**
* Construye un payload de creación de cliente a partir de los datos
* del formulario y los campos sucios.
*
* Reglas:
* - el payload debe ser un objeto con solo las propiedades que han cambiado (campos sucios).
* - no debe incluir campos que no han cambiado.
* - el shape del payload debe coincidir con el de CustomerCreatePayload,
* es decir, orientado a la API.
* - no debe tener transformaciones ni campos adicionales, solo los que vienen del
* formulario y están sucios.
*
* @param formData: Los datos del formulario de creación de cliente.
* @returns Un objeto que se puede enviar a la API para crear un cliente,
* con todos los campos necesarios.
*/
export const buildCustomerCreatePayload = (formData: CustomerCreateForm): CustomerCreatePayload => {
return {
...formData,
// El backend exige que el cliente envíe un id en la creación.
id: UniqueID.generateNewID().toString(),
};
};