Ejemplo de adaptación de clientes
Un recorrido concreto por listado, ficha, formulario y validación.
Objetivo: adaptar la presentación de clientes a una vertical conservando el recurso existente. Este ejemplo se basa en lectura del código del checkout; no se ha realizado un alta contra un tenant durante la documentación.
Archivos que intervienen
| Cambio | Archivo |
|---|---|
| Cabecera, búsqueda, cifras y tabla | src/features/pimia/ui/PimiaCustomersScreen.tsx |
| Ficha | src/features/pimia/ui/PimiaCustomerScreen.tsx |
| Alta y edición | src/features/pimia/ui/PimiaCustomerDialog.tsx |
| Direcciones | src/features/pimia/ui/PimiaAddressFields.tsx |
| Estado y reglas del formulario | src/features/pimia/lib/customerDraft.ts |
| Guardado e invalidación | src/features/pimia/hooks/usePimiaClientes.ts |
| Adaptación de la escritura | src/features/pimia/api/customerEditor.ts |
Diccionario del formulario
| Clave frontend | Contenido | Regla o precaución |
|---|---|---|
| name | Nombre | Obligatorio; máximo 255 puntos de código |
| Correo | Opcional; validación de formato si se rellena | |
| phone | Teléfono | Máximo 20 puntos de código |
| taxId | NIF/CIF | Máximo 20 |
| contactName | Persona de contacto | Conservar el mapeo del borrador |
| website | Web | Puede generar advertencia local |
| prefix | Prefijo | Conservar el valor al editar |
| notes | Notas | Texto del recurso |
| iban | IBAN | Máximo 34; no añadir validaciones más estrictas por intuición |
| bic | BIC | Máximo 11 |
| sepaMandateId | Identificador del mandato | Parte del bloque SEPA |
| sepaMandateDate | Fecha del mandato | Fecha civil YYYY-MM-DD |
| currencyId | Moneda | Número o null; preservar la original al editar |
| paymentMethodId | Forma de pago | Número o null; catálogo GENERAL |
| billing | Dirección de facturación | Bloque completo |
| shipping | Dirección de envío | Bloque completo conservado mientras se alterna su activación |
| hasShipping | Activación de envío | No borrar el borrador al desactivar y volver a activar |
Las direcciones editan name, street1, street2, city, state, zip y
phone; countryId y fax se conservan aunque no sean editables en este
formulario. Los campos personalizados no forman parte de este editor.
Una modificación visual concreta
Puedes cambiar el rótulo «Clientes» por una expresión sectorial, reorganizar la ficha y priorizar contacto o dirección. Conserva las claves y los handlers. Si necesitas «prendas recibidas» o «estado de lavado», estás introduciendo entidades o reglas sectoriales: deben diseñarse como ampliación de negocio.
Qué comprobar después
- El listado sigue buscando y paginando sobre el conjunto del servidor.
- La ficha abre con el identificador correcto.
- El diálogo se siembra cada vez que cambia el cliente.
- Se conservan moneda, direcciones y valores que el formulario no expone.
- Las longitudes y errores siguen bloqueando el envío que corresponda.
- Tras guardar se refrescan los datos y se muestra el resultado.