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

111 lines
3.0 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.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.UUID;
@Entity
@Table(
name = "vehicle_dispatch",
uniqueConstraints = {
@UniqueConstraint(
name = "uk_vehicle_dispatch_shift",
columnNames = {"ved_veh_id", "ved_dispatch_date", "ved_shift"}
)
}
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EntityListeners(AuditingEntityListener.class)
public class VehicleDispatch {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ved_id")
private Long vedId;
@Column(name = "ved_uuid", unique = true)
private UUID vedUuid;
@Column(name = "ved_status", length = 10)
private String vedStatus; // O: Open | C: Closed | P: Paused
@Column(name = "ved_veh_id")
private Long vedVehId;
@Column(name = "ved_driver_id")
private Long vedDriverId;
@Column(name = "ved_sub_driver_id")
private Long vedSubDriverId;
@Column(name = "ved_dispatch_date", nullable = false)
private LocalDate vedDispatchDate;
@Column(name = "ved_shift")
private Integer vedShift;
@Column(name = "ved_start_at")
private LocalDateTime vedStartAt;
@Column(name = "ved_start_reason")
private String vedStartReason;
@Column(name = "ved_paused_at")
private LocalDateTime vedPausedAt;
@Column(name = "ved_end_at")
private LocalDateTime vedEndAt;
@Column(name = "ved_end_reason")
private String vedEndReason;
@Column(name = "ved_odometer_start", precision = 12, scale = 2)
private BigDecimal vedOdometerStart;
@Column(name = "ved_odometer_end", precision = 12, scale = 2)
private BigDecimal vedOdometerEnd;
@Column(name = "ved_odometer_increment", precision = 12, scale = 2)
private BigDecimal vedOdometerIncrement;
@Column(name = "ved_odometer_source", length = 20)
private String vedOdometerSource; // obd / gpsDistance / gpsOdometer
@Column(name = "ved_event_count")
private Integer vedEventCount;
@Column(name = "ved_source", length = 20)
private String vedSource; // AUTO / MANUAL
@Column(name = "ved_created_at")
private LocalDateTime vedCreatedAt;
@Column(name = "ved_created_by", length = 50)
private String vedCreatedBy;
@Column(name = "ved_updated_at")
private LocalDateTime vedUpdatedAt;
@Column(name = "ved_updated_by", length = 50)
private String vedUpdatedBy;
}