using ERPCore.Dtos.Audit;
using ERPCore.Dtos.Common;

namespace ERPCore.Services.Interfaces;

/// <summary>
/// Read access to the audit trail and GL-ready journal stubs (auditor role,
/// 02-SECURITY B.2.3). Both are append-only; no write API.
/// </summary>
public interface IAuditService
{
    Task<PagedResponse<AuditLogDto>> ListLogsAsync(
        string? entityType, int? entityId, int? userId, DateOnly? from, DateOnly? to, PageQuery query, CancellationToken ct = default);

    Task<PagedResponse<JournalEntryStubDto>> ListJournalAsync(
        string? sourceDocType, int? sourceDocId, PageQuery query, CancellationToken ct = default);
}
