package com.ltgk.boat.domain.vo;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.ltgk.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author: wan kun
 * @Description: TODO
 * @Date: 2025/3/10 17:16
 * @Version: 1.0
 */
@Data
public class BoatAlarmInfoVo {
    @JsonProperty(value = "id")
    @ApiModelProperty(value = "")
    private String id;

    @JsonProperty(value = "alarmType")
    @ApiModelProperty(value = "报警类型")
    @Excel(name = "报警类型", sort = 2)
    private String alarmType;

    @JsonProperty(value = "alarmNature")
    @ApiModelProperty(value = "报警种类，（1是安全报警，2是违规报警）")
    private String alarmNature;

    @JsonProperty(value = "alarmArea")
    @ApiModelProperty(value = "报警区域（涉外报警，或者警戒区，电子围栏报警区域信息）")
    @Excel(name = "报警区域", sort = 1)
    private String alarmArea;

    @JsonProperty(value = "mmsi")
    @ApiModelProperty(value = "通导设备号")
    @Excel(name = "通导设备号", sort = 5)
    private String mmsi;

    @JsonProperty(value = "targetSourceId")
    @ApiModelProperty(value = "目标源id 目标在设备端的唯一标识 -- 雷达数据使用")
    private String targetSourceId;

    @JsonProperty(value = "areaCode")
    @ApiModelProperty(value = "渔船所在区域编码")
    @Excel(name = "地区代码", sort = 18)
    private String areaCode;

    @JsonProperty(value = "areaName")
    @ApiModelProperty(value = "渔船所在区域名称")
    @Excel(name = "地区名称", sort = 11)
    private String areaName;

    @JsonProperty(value = "boatName")
    @ApiModelProperty(value = "船名")
    @Excel(name = "渔船名称", sort = 0)
    private String boatName;

    @JsonProperty(value = "boatId")
    @ApiModelProperty(value = "船id")
    private String boatId;

    @JsonProperty(value = "areaNumber")
    @ApiModelProperty(value = "所在海区信息")
    @Excel(name = "所在海区信息", sort = 17)
    private String areaNumber;

    @JsonProperty(value = "lastLongitude")
    @ApiModelProperty(value = "渔船最后一次出现经度")
    @Excel(name = "经度", sort = 15)
    private BigDecimal lastLongitude;

    @JsonProperty(value = "lastLatitude")
    @ApiModelProperty(value = "渔船最后一次出现纬度")
    @Excel(name = "纬度", sort = 16)
    private BigDecimal lastLatitude;

    @JsonProperty(value = "lastLocationTime")
    @ApiModelProperty(value = "渔船最后一次定位时间")
    @Excel(name = "定位时间", dateFormat = "yyyy-MM-dd HH:mm:ss", sort = 14)
    private Date lastLocationTime;

    @JsonProperty(value = "lastBwlx")
    @ApiModelProperty(value = "最后报文类型")
    @Excel(name = "最后报文类型", sort = 6)
    private String lastBwlx;

    @JsonProperty(value = "alarmTime")
    @ApiModelProperty(value = "报警时间")
    @Excel(name = "报警时间", sort = 3, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date alarmTime;

    @JsonProperty(value = "acceptState")
    @ApiModelProperty(value = "受理状态(0为待受理，1为处理中，2为已处理，3为标记结束)")
    @Excel(name = "受理状态", readConverterExp = "0=待受理,1=处理中,2=已处理,3=结束", sort = 4)
    private Integer acceptState;

    @JsonProperty(value = "imgUrl")
    @ApiModelProperty(value = "报警图片url")
    private String imgUrl;

    @JsonProperty(value = "imgTime")
    @ApiModelProperty(value = "拍照时间")
    private Date imgTime;

    @JsonProperty(value = "videoUrl")
    @ApiModelProperty(value = "报警视频url")
    private String videoUrl;

    @ApiModelProperty(value = "船长")
    @JsonProperty("length")
    private BigDecimal length;

    @ApiModelProperty(value = "型宽")
    @JsonProperty("width")
    private BigDecimal width;

    @ApiModelProperty(value = "型深")
    @JsonProperty("height")
    private BigDecimal height;

    @ApiModelProperty(value = "总吨位")
    @JsonProperty("tonnage")
    private BigDecimal tonnage;

    @ApiModelProperty(value = "净吨位")
    @JsonProperty("netTonnage")
    private BigDecimal netTonnage;

    @ApiModelProperty(value = "主机总功率")
    @JsonProperty("mainPower")
    @Excel(name = "主机功率", sort = 9)
    private BigDecimal mainPower;

    @ApiModelProperty(value = "船舶所有人名称")
    @JsonProperty("holderName")
    @Excel(name = "渔船所有人", sort = 12)
    private String holderName;

    @ApiModelProperty(value = "船舶所有人地址")
    @JsonProperty("holderAddress")
    private String holderAddress;

    @ApiModelProperty(value = "船舶所有人电话")
    @JsonProperty("holderPhone")
    @Excel(name = "联系电话", sort = 13)
    private String holderPhone;

    @ApiModelProperty(value = "船舶类型")
    @JsonProperty("boatType")
    @Excel(name = "船舶类型", sort = 10)
    private String boatType;

    @ApiModelProperty(value = "终端号")
    @JsonProperty("terminalCode")
    private String terminalCode;

    @JsonProperty(value = "acceptUserId")
    @ApiModelProperty(value = "受理人主键")
    private String acceptUserId;

    @JsonProperty(value = "acceptUserName")
    @ApiModelProperty(value = "受理人名称")
    private String acceptUserName;

    @JsonProperty(value = "acceptTime")
    @ApiModelProperty(value = "受理时间")
    private Date acceptTime;

    @JsonProperty(value = "verifySituation")
    @ApiModelProperty(value = "核实情况")
    private String verifySituation;

    @JsonProperty(value = "participants")
    @ApiModelProperty(value = "参与人员")
    private String participants;

    @JsonProperty(value = "processResults")
    @ApiModelProperty(value = "处理结果")
    private String processResults;

    @JsonProperty(value = "processUserName")
    @ApiModelProperty(value = "处理人员名称")
    private String processUserName;

    @JsonProperty(value = "processUserId")
    @ApiModelProperty(value = "处理人员主键")
    private String processUserId;

    @JsonProperty(value = "remark")
    @ApiModelProperty(value = "备注")
    private String remark;

    @JsonProperty(value = "speed")
    @ApiModelProperty(value = "航速")
    private String speed;

    @JsonProperty(value = "course")
    @ApiModelProperty(value = "航向")
    private String course;
}
