Files
pmu-bet-engine/src/main/java/com/pmu/betengine/model/Agent.java
2025-12-04 12:21:53 +00:00

98 lines
2.4 KiB
Java

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<TPE> 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;
}