using PostFundManagement.Application.Services.Governance; using PostFundManagement.Domain; using PostFundManagement.Domain.Attributes; using PostFundManagement.Domain.Models; namespace PostFundManagement.Application.Abstractions.Services; public interface IGovernanceService { [Log] Task> GetProgrammesAsync(string portfolioIdHash, CancellationToken cancellationToken = default); [Log] Task> GetPorfoliosAsync(string organisationIdHash, CancellationToken cancellationToken = default); [Log] Task> GetOrganisationsAsync(Pagination pagination, CancellationToken cancellationToken = default); [Log] Task> GetOrganisationAsync(string organisationIdHash, CancellationToken cancellationToken = default); [Log] Task> GetInstrumentsAsync(string programmeIdHash, CancellationToken cancellationToken = default); [Log] Task> GetDashboardAsync(CancellationToken cancellationToken = default); [Log] [Audit] Task CreateOrganisationAsync(CreateOrganisationRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task> UpdateOrganisationAsync(UpdateOrganisationRequest request, CancellationToken cancellationToken = default); [Log] [Audit] Task CreatePortfolioAsync(CreatePortfolioRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task UpdatePortfolioAsync(UpdatePortfolioRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetPortfolioProgrammesAsync(string portfolioIdHash, CancellationToken cancellationToken = default); [Log] Task> GetPortfolioAsync(string portfolioIdHash, CancellationToken cancellationToken = default); }