using mws.backend.dotnet.application.Common; using mws.backend.dotnet.domain.Tasks; using TaskPriority = mws.backend.dotnet.domain.Tasks.TaskPriority; using TaskStatus = mws.backend.dotnet.domain.Tasks.TaskStatus; namespace mws.backend.dotnet.application.Common.Repositories; public interface ITaskRepository : IRepository { Task GetByIdAsync(Guid id, CancellationToken ct = default); Task GetWithAssigneeAsync(Guid id, CancellationToken ct = default); Task> GetForProjectAsync( Guid projectId, TaskStatus? status, TaskPriority? priority, Guid? assigneeId, int page, int pageSize, CancellationToken ct = default); Task> SearchWithAssigneeAsync(List projectIds, string? term, int take, CancellationToken ct = default); Task> CountByStatusForProjectAsync(Guid projectId, CancellationToken ct = default); Task> GetRecentForProjectAsync(Guid projectId, int take, CancellationToken ct = default); }