opr-rest-api/src/main/java/com/goi/erp/entity/VehicleInspection.java

88 lines
2.3 KiB
Java

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