# Dominio Logging ## Propósito Registra cambios relevantes de valores en modelos de negocio, indicando tenant, atributo, valor anterior/nuevo, fecha y actor. ## Componentes - `Models/ValueChange.php`: entrada persistida del historial, relacionada polimórficamente con el objeto modificado. - `Models/Concerns/LogsValueChanges.php`: trait reutilizable que escucha actualizaciones del modelo. - `Enums/ValueChangeActorType.php`: distingue cambios realizados por usuario o por el sistema. ## Uso Un modelo consumidor debe: 1. Usar el trait `LogsValueChanges`. 2. Declarar la propiedad `loggedAttributes` con los atributos auditables. 3. Implementar `valueChangeTenantCode()`. El trait solo registra atributos configurados que efectivamente cambiaron. Si existe un usuario autenticado lo asocia al cambio; en caso contrario marca al sistema como actor. ## API y dependencias No expone rutas HTTP. `Purchase` lo utiliza para auditar cambios de estado y `Sale` consulta esas modificaciones para reportes.