73 lines
1.9 KiB
Java
73 lines
1.9 KiB
Java
package com.pmu.betengine.model;
|
|
|
|
import com.pmu.betengine.model.statut.StatutTPE;
|
|
import com.pmu.betengine.model.type.TypeTPE;
|
|
import jakarta.persistence.*;
|
|
import jakarta.validation.constraints.NotBlank;
|
|
import jakarta.validation.constraints.NotNull;
|
|
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.LocalDateTime;
|
|
|
|
@Entity
|
|
@Data
|
|
@Builder
|
|
@NoArgsConstructor
|
|
@AllArgsConstructor
|
|
@Table(name = "tpe", uniqueConstraints = {
|
|
@UniqueConstraint(columnNames = "imei"),
|
|
@UniqueConstraint(columnNames = "serial")
|
|
})
|
|
public class TPE {
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
private Long id;
|
|
|
|
@NotBlank(message = "L'IMEI est obligatoire")
|
|
@Column(unique = true, nullable = false, length = 15)
|
|
private String imei;
|
|
|
|
@NotBlank(message = "Le numéro de série est obligatoire")
|
|
@Column(unique = true, nullable = false)
|
|
private String serial;
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
@NotNull(message = "Le type est obligatoire")
|
|
@Column(nullable = false)
|
|
private TypeTPE type;
|
|
|
|
@NotBlank(message = "La marque est obligatoire")
|
|
@Column(nullable = false)
|
|
private String marque;
|
|
|
|
@NotBlank(message = "Le modèle est obligatoire")
|
|
@Column(nullable = false)
|
|
private String modele;
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
@NotNull(message = "Le statut est obligatoire")
|
|
@Column(nullable = false)
|
|
private StatutTPE statut = StatutTPE.DISPONIBLE;
|
|
|
|
@ManyToOne
|
|
@JoinColumn(name = "agent_id")
|
|
private Agent agent;
|
|
|
|
|
|
@Column(nullable = false)
|
|
private boolean assigne = false;
|
|
|
|
@CreationTimestamp
|
|
@Column(nullable = false, updatable = false)
|
|
private LocalDateTime createdAt;
|
|
|
|
@UpdateTimestamp
|
|
@Column(nullable = false)
|
|
private LocalDateTime updatedAt;
|
|
}
|