111 lines
3.0 KiB
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;
|
|
}
|