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);
}