package org.dromara.domain.bo;

import org.dromara.domain.SenFlowDetail;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 流量明细业务对象 sen_flow_detail
 *
 * @author luogang
 * @date 2024-09-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SenFlowDetail.class, reverseConvertGenerate = false)
public class SenFlowDetailBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 任务编号
     */
    @NotBlank(message = "任务编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long taskId;

    /**
     * 监控点id
     */
    @NotNull(message = "监控点id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long pointId;

    /**
     * 监控点名称
     */
    @NotBlank(message = "监控点名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pointName;

    /**
     * 车道号
     */
    @NotBlank(message = "车道号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String laneNumber;

    /**
     * 车流量
     */
    @NotBlank(message = "车流量不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vehicleCount;

    /**
     * 平均数据（km/h）
     */
    @NotBlank(message = "平均数据（km/h）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String averageSpeed;

    /**
     * 排队长度（s）
     */
    @NotBlank(message = "排队长度（s）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String queueTime;

    /**
     * 空间占有率
     */
    @NotBlank(message = "空间占有率不能为空", groups = { AddGroup.class, EditGroup.class })
    private String spaceRate;

    /**
     * 时间占有率
     */
    @NotBlank(message = "时间占有率不能为空", groups = { AddGroup.class, EditGroup.class })
    private String timeRate;

    /**
     * 车头时距（s）
     */
    @NotBlank(message = "车头时距（s）不能为空", groups = { AddGroup.class, EditGroup.class })
    private String headwayTime;

    /**
     * 车头间距
     */
    @NotBlank(message = "车头间距不能为空", groups = { AddGroup.class, EditGroup.class })
    private String headwayDistance;

    /**
     * 车辆类型与行驶方向数
     */
    @NotBlank(message = "车辆类型与行驶方向数不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vehicleRemark;


}
