namespace PowderCoating.Application.Interfaces; /// /// Writes manual entries to the AuditLog table for operations that are not captured /// automatically by the EF SaveChanges interceptor — imports, exports, and future /// platform-level events. Uses the same table and viewer as the interceptor so all /// audit history is in one place. /// public interface IAuditService { /// /// Appends a single row to AuditLogs outside of the EF change tracker. /// /// Verb describing the event, e.g. "Imported", "Exported". /// Logical category, e.g. "Customers", "AccountingExport". /// Short human-readable label shown in the audit viewer. /// Optional object serialised to JSON and stored in NewValues. /// Optional identifier for the affected record. Task LogAsync(string action, string entityType, string? description = null, object? details = null, string? entityId = null); }