package org.dromara.domain.bo;

import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.domain.SenMonitorPoint;
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_monitor_point
 *
 * @author luogang
 * @date 2024-09-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = SenMonitorPoint.class, reverseConvertGenerate = false)
public class SenMonitorPointBo extends BaseEntity {
    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long pointId;
    /**
     * 监控点名称
     */
    @NotBlank(message = "监控点名称不能为空", groups = {AddGroup.class, EditGroup.class})
    private String pointName;

    /**
     * 行政区域
     */
    @NotNull(message = "行政区域不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long areaId;
    /**
     * 行政区域名称
     */
    @Translation(type = TransConstant.AREA_ID_TO_NAME, mapper = "areaId")
    private String areaName;
    /**
     * 视频类型（1-实时视频 2-离线视频）
     */
    @NotBlank(message = "视频类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String videoType;
    /**
     * 场景类型（1-高速公路 2-城市道路）
     */
    @NotBlank(message = "场景类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String sceneType;

    /**
     * 设备编号
     */
    private String deviceNo;

    /**
     * 实时流地址
     */
    private String streamUrl;

    /**
     * 经度
     */
    @NotBlank(message = "经度不能为空", groups = {AddGroup.class, EditGroup.class})
    private String longitude;

    /**
     * 纬度
     */
    @NotBlank(message = "纬度不能为空", groups = {AddGroup.class, EditGroup.class})
    private String latitude;

    /**
     * 方向
     */
    private String direction;

    /**
     * 路口编号
     */
    private String intersectionId;
}
