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

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

/**
 * Réponse complète d'une donnée de référence.
 *
 * <p>
 * Inclut les champs d'audit (id, dates, version)
 * et toutes les métadonnées UI (icône, couleur,
 * sévérité).
 *
 * @author UnionFlow Team
 * @version 3.0
 * @since 2026-02-21
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class TypeReferenceResponse extends BaseResponse {

    /** Domaine fonctionnel. */
    private String domaine;

    /** Code technique. */
    private String code;

    /** Libellé affiché. */
    private String libelle;

    /** Description longue. */
    private String description;

    /** Classe d'icône PrimeFaces. */
    private String icone;

    /** Code couleur hexadécimal. */
    private String couleur;

    /** Sévérité PrimeFaces. */
    private String severity;

    /** Ordre d'affichage. */
    private Integer ordreAffichage;

    /** Valeur par défaut du domaine. */
    private Boolean estDefaut;

    /** Protégée contre la suppression. */
    private Boolean estSysteme;

    /** UUID de l'organisation (null = global). */
    private UUID organisationId;
}
