using PostFundManagement.Application.Services.Projects; using PostFundManagement.Domain; using PostFundManagement.Domain.Models; namespace PostFundManagement.Application.Abstractions.Services; public interface IProjectService { Task UpdateProjectStatusAsync(UpdateProjectStatusRequest request, Guid userId, CancellationToken cancellationToken = default); Task> GetProjectsAsync(Pagination pagination, CancellationToken cancellationToken = default); Task> GetProjectAsync(string projectIdHash, CancellationToken cancellationToken = default); Task> GetActivitiesAsync(string projectIdHash, CancellationToken cancellationToken = default); Task CreateProjectAsync(CreateProjectRequest request, Guid userId, CancellationToken cancellationToken = default); Task CreateActivityAsync(CreateActivityRequest request, Guid userId, CancellationToken cancellationToken = default); Task> GetProjectMilestonesAsync(string projectIdHash, CancellationToken cancellationToken = default); Task> GetProjectIndicatorsAsync(string projectIdHash, CancellationToken cancellationToken = default); Task> GetMilestoneAsync(string milestoneIdHash, CancellationToken cancellationToken = default); Task> GetMilestonesAsync(Pagination pagination, CancellationToken cancellationToken = default); Task UpdateMilestoneAsync(UpdateMilestoneRequest request, Guid userId, CancellationToken cancellationToken = default); Task UpdateProjectAsync(UpdateProjectRequest request, Guid userId, CancellationToken cancellationToken = default); Task> GetActivityAsync(string activityIdHash, CancellationToken cancellationToken = default); Task> GetProjectRisksAsync(string projectIdHash, CancellationToken cancellationToken = default); Task CreateProgrammeAsync(CreateProgrammeRequest request, Guid userId, CancellationToken cancellationToken = default); Task UpdateProgrammeAsync(UpdateProgrammeRequest request, Guid userId, CancellationToken cancellationToken = default); Task> GetProgrammeAsync(string programmeIdHash, CancellationToken cancellationToken = default); Task> GetProgrammesAsync(Pagination pagination, CancellationToken cancellationToken = default); Task> GetProgrammeProjectsAsync(string programmeIdHash, CancellationToken cancellationToken = default); }