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> GetProgrammeValueAsync(string programmeIdHash, CancellationToken cancellationToken = default); [Log] Task> GetPorfolioValueAsync(string portfolioIdHash, CancellationToken cancellationToken = default); [Log] [Audit] Task UpdateInstrumentAsync(UpdateInstrumentRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task CreateInstrumentAsync(CreateInstrumentRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetProgrammesAsync(string portfolioIdHash, CancellationToken cancellationToken = default); [Log] Task> GetPorfoliosAsync(Pagination pagination, CancellationToken cancellationToken = default); [Log] Task> GetOrganisationPorfoliosAsync(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, Guid userId, 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); [Log] [Audit] Task CreateTenantAsync(CreateTenantRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetTenantsAsync(CancellationToken cancellationToken = default); [Log] Task> GetTenantAsync(string tenantIdHash, CancellationToken cancellationToken = default); [Log] [Audit] Task UpdateTenantAsync(UpdateTenantRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task UpdateTenantUserAsync(UpdateTenantUserRequest request, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task CreateTenantOrganisationAsync(string organisationIdHash, string tenantIdHash, Guid userId, CancellationToken cancellationToken = default); [Log] [Audit] Task UpdateTenantOrganisationAsync(string tenantOrganisationIdHash, ActivityStatus status, Guid userId, CancellationToken cancellationToken = default); [Log] Task> GetTenantOrganisationsAsync(string tenantIdHash, CancellationToken cancellationToken = default); [Log] Task> GetTenantOrganisationAsync(string tenantOrganisationIdHash, CancellationToken cancellationToken = default); [Log] Task> GetTenantUsersAsync(string tenantIdHash, CancellationToken cancellationToken = default); }