package com.ffii.fpsms.modules.pickOrder.entity

import com.ffii.core.entity.BaseEntity
import com.ffii.fpsms.modules.logistic.entity.Logistic
import com.ffii.fpsms.modules.master.entity.Shop
import jakarta.persistence.*
import jakarta.validation.constraints.NotNull
import jakarta.validation.constraints.Size
import java.time.LocalTime

@Entity
@Table(name = "truck")
open class Truck : BaseEntity<Long>() {
    
    @Size(max = 50)
    @NotNull
    @Column(name = "TruckLanceCode", nullable = false)
    open var truckLanceCode: String? = null

    @Column(name = "DepartureTime")
    open var departureTime: LocalTime? = null

    @ManyToOne
    @JoinColumn(name = "shopId")
    open var shop: Shop? = null
    
    @Column(name = "ShopName", length = 255)
    open var shopName: String? = null
    
    @Column(name = "ShopCode", length = 50)
    open var shopCode: String? = null
    
    @Column(name = "LoadingSequence")
    open var loadingSequence: Int? = null
    
    @Column(name = "Store_id")
    open var storeId: String? = null

    @Size(max = 255)
    @Column(name = "districtReference", length = 255)
    open var districtReference: String? = null

    @Column(name = "remark")
    open var remark: String? = null

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "logisticId")
    open var logistic: Logistic? = null

}
