using Mws.Domain.Tasks; using TaskPriority = Mws.Domain.Tasks.TaskPriority; using TaskStatus = Mws.Domain.Tasks.TaskStatus; namespace Mws.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, 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); }