using Fitness_core_BE.Models; using Fitness_core_BE.DTOs.Ticket; namespace Fitness_core_BE.Interfaces { public interface ITicketRepository { // Ticket operations Task GetTicketCatId(string type); Task> GetTicketListAsync(CancellationToken ct = default); Task> GetTicketByUserIdAsync(Guid userId, CancellationToken ct = default); Task GetByTicketIdAsync(Guid id, CancellationToken ct = default); Task CreateTicketAsync(Ticket ticket, CancellationToken ct = default); Task UpdateTicketAsync(TicketDetailDto ticket, CancellationToken ct = default); Task DeleteAsync(Guid id, CancellationToken ct = default); // Ticket category operations Task> GetTicketCategoryListAsync(CancellationToken ct = default); Task GetTicketCategoryByIdAsync(Guid id, CancellationToken ct = default); // Ticket message operations Task SendMessageAsync(TicketMessage ticketMessage, CancellationToken ct = default); Task SubmitTicketFeedbackAsync(Guid ticketId, int rating, string? feedback, CancellationToken ct = default); Task UpdateTicketStatusAsync(Guid ticketId, Fitness_core_BE.Models.Enums.TicketStatusEnum statusCode); } }