package com.goi.erp.entity; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.EntityListeners; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import jakarta.persistence.UniqueConstraint; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.data.jpa.domain.support.AuditingEntityListener; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.UUID; @Entity @Table( name = "vehicle_inspection", uniqueConstraints = { @UniqueConstraint( name = "uk_vehicle_inspection_source", columnNames = {"vei_source", "vei_source_id"} ) } ) @Data @NoArgsConstructor @AllArgsConstructor @Builder @EntityListeners(AuditingEntityListener.class) public class VehicleInspection { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "vei_id") private Long veiId; @Column(name = "vei_uuid", unique = true) private UUID veiUuid; @Column(name = "vei_veh_id") private Long veiVehId; @Column(name = "vei_driver_id") private Long veiDriverId; @Column(name = "vei_sub_driver_id") private Long veiSubDriverId; @Column(name = "vei_inspection_date", nullable = false) private LocalDate veiInspectionDate; @Column(name = "vei_inspection_type", length = 20) private String veiInspectionType; // preTrip / postTrip @Column(name = "vei_start_at") private LocalDateTime veiStartAt; @Column(name = "vei_end_at") private LocalDateTime veiEndAt; @Column(name = "vei_result", length = 20) private String veiResult; // safe / unsafe @Column(name = "vei_odometer") private Long veiOdometer; @Column(name = "vei_has_defect") private Boolean veiHasDefect; @Column(name = "vei_source", length = 20) private String veiSource; // SAMSARA / PAPER @Column(name = "vei_source_id") private Long veiSourceId; // external id or self id @Column(name = "vei_created_at") private LocalDateTime veiCreatedAt; @Column(name = "vei_dispatch_id") private Long veiDispatchId; }