package dev.lions.unionflow.server.api.dto.ticket.response;

import dev.lions.unionflow.server.api.dto.base.BaseResponse;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * Réponse détaillée d'un ticket de support.
 *
 * @author UnionFlow Team
 * @version 1.0
 */
@Getter
@Setter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TicketResponse extends BaseResponse {

    private String numeroTicket;
    private UUID utilisateurId;
    private String sujet;
    private String description;

    /** TECHNIQUE, FONCTIONNALITE, UTILISATION, COMPTE, AUTRE */
    private String categorie;

    /** BASSE, NORMALE, HAUTE, URGENTE */
    private String priorite;

    /** OUVERT, EN_COURS, EN_ATTENTE, RESOLU, FERME */
    private String statut;

    private UUID agentId;
    private String agentNom;
    private LocalDateTime dateDerniereReponse;
    private LocalDateTime dateResolution;
    private LocalDateTime dateFermeture;
    private Integer nbMessages;
    private Integer nbFichiers;
    private Integer noteSatisfaction;
    private String resolution;
    private List<String> piecesJointes;
}
