26 lines
1011 B
Markdown
26 lines
1011 B
Markdown
# 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.
|