package sn.ladoum.bergerie.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import sn.ladoum.bergerie.entity.enums.Sexe;
import sn.ladoum.bergerie.entity.enums.StatutMouton;

import java.time.LocalDate;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class MoutonDto {

    private Long id;
    private String numeroIdentification;

    @NotBlank(message = "Le nom est obligatoire")
    private String nom;

    @NotNull(message = "Le sexe est obligatoire")
    private Sexe sexe;

    @NotNull(message = "La date de naissance est obligatoire")
    private LocalDate dateNaissance;

    /** Date d'enregistrement dans le système — lecture seule (auto-fixée par le backend). */
    private LocalDate dateEntreeSysteme;

    private String race;
    private String couleur;
    private String caracteristiques;
    private String photo;

    @NotNull(message = "Le statut est obligatoire")
    private StatutMouton statut;

    private Boolean reproducteur;

    private Long pereId;
    private String pereNom;

    private Long mereId;
    private String mereNom;

    private Long eleveurId;
    private String eleveurNom;
}
