package com.pmu.betengine.model; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonFormat; import com.pmu.betengine.model.statut.StatutAgent; import jakarta.persistence.*; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.Pattern; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.annotations.CreationTimestamp; import org.hibernate.annotations.UpdateTimestamp; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; @Data @Builder @NoArgsConstructor @AllArgsConstructor @Entity @Table(name = "agents") public class Agent { @Id @GeneratedValue private Long id; private String code; private String profile; private String principalCode; private String caisseProfile; @Enumerated(EnumType.STRING) private StatutAgent statut = StatutAgent.ACTIF; private String zone; private String kiosk; private String fonction; @Column(name = "date_embauche") private LocalDateTime dateEmbauche; @Column(name = "derniere_connexion") private LocalDateTime derniereConnexion; private String nom; private String prenom; private String autresNoms; @Column(name = "date_naissance") private LocalDate dateNaissance; private String lieuNaissance; private String ville; private String adresse; private Boolean autoriserAides; private String phone; private String pin; private Double limiteInferieure; private Double limiteSuperieure; private Double limiteParTransaction; private Double limiteMinAirtime; private Double limiteMaxAirtime; private Integer maxPeripheriques; @OneToMany(mappedBy = "agent") @JsonIgnore private List tpes; @Column(name = "limit_id") private Long limitId; private String nationalite; private String cni; @Column(name = "cni_delivree_le") private LocalDate cniDelivreeLe; private String cniDelivreeA; private String residence; private String autreAdresse1; private String statutMarital; private String epoux; private String autreTelephone; @Column(name = "created_at") private LocalDateTime createdAt; @Column(name = "updated_at") private LocalDateTime updatedAt; @Column(name = "created_by") private String createdBy; }