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