using Mws.Application.Common; namespace Mws.Application.Projects; public interface IProjectService { Task> GetProjectsAsync(Guid userId, CancellationToken ct = default); Task GetProjectAsync(Guid userId, Guid projectId, CancellationToken ct = default); Task CreateProjectAsync(Guid userId, CreateProjectRequest request, CancellationToken ct = default); Task UpdateProjectAsync(Guid userId, Guid projectId, UpdateProjectRequest request, CancellationToken ct = default); Task ArchiveProjectAsync(Guid userId, Guid projectId, CancellationToken ct = default); Task GetOverviewAsync(Guid userId, Guid projectId, CancellationToken ct = default); Task> SearchAsync(Guid userId, string term, CancellationToken ct = default); } public interface IProjectMemberService { Task> GetMembersAsync(Guid userId, Guid projectId, CancellationToken ct = default); Task AddMemberAsync(Guid userId, Guid projectId, AddMemberRequest request, CancellationToken ct = default); Task UpdateMemberDocumentPermissionsAsync(Guid userId, Guid projectId, Guid memberUserId, UpdateMemberDocumentPermissionsRequest request, CancellationToken ct = default); Task RemoveMemberAsync(Guid userId, Guid projectId, Guid memberUserId, CancellationToken ct = default); }