using HelpDesk.Models.Entities; using HelpDesk.Models.Enums; namespace HelpDesk.Data.Repositories; public interface ITicketRepository { Task GetByIdAsync(Guid id); Task> GetAllAsync(TicketStatus? status = null, TicketPriority? priority = null, Guid? assigneeId = null, Guid? requesterId = null, int page = 1, int pageSize = 20); Task GetCountAsync(TicketStatus? status = null, TicketPriority? priority = null, Guid? assigneeId = null, Guid? requesterId = null); Task CreateAsync(Ticket ticket); Task UpdateAsync(Ticket ticket); Task DeleteAsync(Guid id); Task GetTotalCountAsync(); Task GetCountByStatusAsync(TicketStatus status); Task GetCountByPriorityAsync(TicketPriority priority); Task GetAverageResponseTimeAsync(); Task GetAverageResolutionTimeAsync(); }