30 lines
1.0 KiB
TypeScript
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(),
|
|
};
|
|
};
|