using ProposalSystem.Application.DTOs; namespace ProposalSystem.Application.Interfaces; public interface IProposalService { Task CreateAsync(CreateProposalRequest request, CancellationToken ct = default); Task GetByIdAsync(Guid id, CancellationToken ct = default); Task> GetAllAsync(ProposalFilterRequest filter, CancellationToken ct = default); Task UpdateAsync(Guid id, UpdateProposalRequest request, CancellationToken ct = default); Task ApproveAsync(Guid id, CancellationToken ct = default); Task MarkSentAsync(Guid id, CancellationToken ct = default); Task ReviseAsync(Guid id, CancellationToken ct = default); Task> GetRevisionHistoryAsync(Guid id, CancellationToken ct = default); Task> GetAuditTrailAsync(Guid id, CancellationToken ct = default); Task GetStatsAsync(CancellationToken ct = default); }