using HelpDesk.Models.Enums; namespace HelpDesk.Models.DTOs; public class CreateTicketRequest { public string Title { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public TicketPriority Priority { get; set; } = TicketPriority.Medium; public Guid? GroupId { get; set; } public Guid? SlaPolicyId { get; set; } } public class UpdateTicketRequest { public string? Title { get; set; } public string? Description { get; set; } public TicketPriority? Priority { get; set; } } public class TicketDto { public Guid Id { get; set; } public string Title { get; set; } = string.Empty; public string Description { get; set; } = string.Empty; public TicketStatus Status { get; set; } public TicketPriority Priority { get; set; } public string TicketNumber { get; set; } = string.Empty; public Guid RequesterId { get; set; } public string RequesterName { get; set; } = string.Empty; public Guid? AssigneeId { get; set; } public string? AssigneeName { get; set; } public Guid? GroupId { get; set; } public string? GroupName { get; set; } public Guid? SlaPolicyId { get; set; } public string? SlaPolicyName { get; set; } public DateTime CreatedAt { get; set; } public DateTime? UpdatedAt { get; set; } public DateTime? ResolvedAt { get; set; } public int CommentCount { get; set; } } public class TicketListResponse { public List Items { get; set; } = new(); public int TotalCount { get; set; } public int Page { get; set; } public int PageSize { get; set; } } public class TicketStatsDto { public int TotalTickets { get; set; } public int OpenTickets { get; set; } public int InProgressTickets { get; set; } public int PendingTickets { get; set; } public int ResolvedTickets { get; set; } public int ClosedTickets { get; set; } } public class AddCommentRequest { public string Content { get; set; } = string.Empty; public bool IsInternal { get; set; } } public class CommentDto { public Guid Id { get; set; } public Guid TicketId { get; set; } public Guid UserId { get; set; } public string UserName { get; set; } = string.Empty; public string Content { get; set; } = string.Empty; public bool IsInternal { get; set; } public DateTime CreatedAt { get; set; } } public class UpdateStatusRequest { public TicketStatus Status { get; set; } } public class AssignTicketRequest { public Guid? AssigneeId { get; set; } }