import { pickFormDirtyValues } from "@erp/core/client"; import type { FieldNamesMarkedBoolean } from "react-hook-form"; import type { CustomerUpdateForm, CustomerUpdatePatch } from "../entities"; /** * Construye un parche de actualización de cliente a partir de los datos * del formulario y los campos sucios. * * Reglas: * - el parche debe ser un objeto con solo las propiedades que han cambiado (campos sucios). * - no debe incluir campos que no han cambiado. * - el shape del parche debe coincidir con el de CustomerUpdatePatch, * 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 * @param dirtyFields * @returns Un objeto que se puede enviar a la API para actualizar un cliente, * con solo los campos que han cambiado. */ export const buildCustomerUpdatePatch = ( formData: CustomerUpdateForm, dirtyFields: FieldNamesMarkedBoolean ): CustomerUpdatePatch => { return pickFormDirtyValues(formData, dirtyFields) as CustomerUpdatePatch; };