package sn.ladoum.bergerie.dto;

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

import java.time.LocalDate;

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

    private Long id;

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

    @NotNull(message = "Le père est obligatoire")
    private Long pereId;
    private String pereNom;
    private Long pereEleveurId;
    private String pereEleveurNom;

    @NotNull(message = "La mère est obligatoire")
    private Long mereId;
    private String mereNom;

    private LocalDate dateMiseBasPrevue;
    private LocalDate dateMiseBasReelle;
    private StatutSaillie statut;

    private Long naissanceId;
    private Long eleveurId;
    private String eleveurNom;
    private String note;

    private Boolean confirmee;
    private LocalDate dateConfirmation;

    // Champs calculés
    private Integer joursAvantMiseBas;  // négatif si dépassé
    private Integer joursGestation;      // depuis le jour de saillie
}
