package dev.lions.models;

import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Représente une étape du processus de réalisation.
 * Chaque étape est caractérisée par un numéro, un titre et une description.
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProcessStep implements Serializable {
  private static final long serialVersionUID = 1L;

  /**
   * Numéro de l'étape du processus.
   */
  @NotNull
  private int number;

  /**
   * Titre de l'étape, compris entre 3 et 50 caractères.
   */
  @NotNull
  @Size(min = 3, max = 50)
  private String title;

  /**
   * Description de l'étape, comprise entre 10 et 250 caractères.
   */
  @NotNull
  @Size(min = 10, max = 250)
  private String description;

  /**
   * Détails supplémentaires de l'étape.
   */
  private String details;

  /**
   * Duree de l'étape.
   */
  private String duration;
}