package com.ningdatech.carapi.open.model.dto;

import com.ningdatech.openapi.signature.model.AbstractOpenApiSignatureReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @Classname AlarmDataVideo
 * @Description
 * @Date 2022/10/28 10:47
 * @Created by PoffyZhang
 */
@Data
@ApiModel(value = "AlarmDataVideo", description = "告警数据 短视频保存")
@NoArgsConstructor
@ToString(callSuper = true)
@Accessors(chain = true)
@AllArgsConstructor
public class AlarmDataVideoDTO extends AbstractOpenApiSignatureReq  {

    private static final long serialVersionUID = 1L;

    /**
     *设备上报短视频唯一标识
     */
    @ApiModelProperty("设备上报短视频唯一标识")
    @NotBlank(message = "设备上报短视频唯一标识不能为空")
    private String orginVideoId;

    /**
     *车辆编号
     */
    @ApiModelProperty("车辆编号")
    private String vehicleIndexCode;

    /**
     * 车牌号
     */
    @ApiModelProperty("车牌号")
    @NotBlank(message = "车牌号不能为空")
    private String plateNo;

    /**
     *车辆自编号
     */
    @ApiModelProperty("车辆自编号")
    private String vehicleSelfNo;

    /**
     * 区域编码
     */
    @ApiModelProperty("区域编码")
    private String regionIndexCode;

    /**
     * 区域名称
     */
    @ApiModelProperty("区域名称")
    private String regionName;

    /**
     *监控点编号
     */
    @ApiModelProperty("监控点编号")
    private String cameraIndexCode;

    /**
     *监控点名称
     */
    @ApiModelProperty("监控点名称")
    private String cameraName;

    /**
     *服务编号
     */
    @ApiModelProperty("服务编号")
    @NotBlank(message = "服务编号不能为空")
    private String serviceIndexCode;

    /**
     *开始时间
     */
    @ApiModelProperty("开始时间")
    @NotBlank(message = "开始时间不能为空")
    private String beginTime;

    /**
     *结束时间
     */
    @ApiModelProperty("结束时间")
    @NotBlank(message = "结束时间不能为空")
    private String endTime;

    /**
     *流码开始时间
     */
    @ApiModelProperty("流码开始时间")
    @NotBlank(message = "流码开始时间不能为空")
    private String streamBeginTime;

    /**
     *流码结束时间
     */
    @ApiModelProperty("流码结束时间")
    @NotBlank(message = "流码结束时间不能为空")
    private String streamEndTime;

    /**
     *片段时长
     */
    @ApiModelProperty("片段时长 秒")
    @NotNull(message = "片段时长不能为空")
    private Integer videoLength;

    /**
     * 告警ID
     */
    @ApiModelProperty("告警ID")
    @NotBlank(message = "告警ID不能为空")
    private String alarmId;

    /**
     * 告警时间
     */
    @ApiModelProperty("告警时间")
    @NotBlank(message = "告警时间不能为空")
    private String alarmTime;

    /**
     * 事件类型
     */
    @ApiModelProperty("事件类型")
    private String alarmType;

    /**
     * 事件类型名
     */
    @ApiModelProperty("事件类型名 如:接打电话")
    private String alarmTypeName;

    /**
     * 片段编号
     */
    @ApiModelProperty("片段编号")
    @NotBlank(message = "片段编号不能为空")
    private String recordIndexCode;

    /**
     * 短视频地址
     */
    @ApiModelProperty("短视频地址")
    @NotBlank(message = "短视频地址不能为空")
    private String url;

    /**
     * 封面url
     */
    @ApiModelProperty("封面url")
    private String coverUrl;
}
