package com.sckw.fleet.model;


import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 自动派车系数表
 * 表名：kwf_driver_conduct_rules
 *
 * @author donglang
 * @date 2025-12-04
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("kwf_truck_dispatch_coefficient")
public class KwfTruckDispatchCoefficient implements Serializable {

    @Serial
    private static final long serialVersionUID = 3044887895472142092L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 企业id
     */
    @TableField("ent_id")
    private Long entId;

    /**
     * 车辆工作时长
     */
    @TableField("vehicle_work_hours")
    private Integer vehicleWorkHours;

    /**
     * 车辆装货时长
     */
    @TableField("vehicle_loading_hours")
    private Integer vehicleLoadingHours;

    /**
     * 车辆卸货时长
     */
    @TableField("vehicle_unloading_hours")
    private Integer vehicleUnloadingHours;

    /**
     * 司机超时限制
     */
    @TableField("driver_timeout_limit")
    private Integer driverTimeoutLimit;

    /**
     * 车辆平均载重
     */
    @TableField("vehicle_avg_load")
    private Integer vehicleAvgLoad;

    /**
     * 车辆平均速度
     */
    @TableField("vehicle_avg_speed")
    private Integer vehicleAvgSpeed;

    /**
     * 车辆最大任务数
     */
    @TableField("vehicle_max_tasks")
    private Integer vehicleMaxTasks;

    /**
     * 司机接单限制
     */
    @TableField("driver_order_limit")
    private Integer driverOrderLimit;

    /**
     * 场内车辆容量
     */
    @TableField("yard_vehicle_capacity")
    private Integer yardVehicleCapacity;

    /**
     * 最大占比
     */
    @TableField("max_ratio")
    private Integer maxRatio;

    /**
     * 缓冲系数
     */
    @TableField("buffer_coefficient")
    private BigDecimal bufferCoefficient;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT) // 插入时自动填充
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) // 插入/更新时自动填充
    private Date updateTime;

    /**
     * 创建人（用户ID，默认-1）
     */
    @TableField(value = "create_user", fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 更新人（用户ID，默认-1）
     */
    @TableField(value = "update_user", fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
}
