package com.zcloud.personnel.positioning.dto.clientobject;

import com.alibaba.cola.dto.ClientObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * BI人员轨迹数据。
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
@Data
public class BiPersonTraceCO extends ClientObject {
    @ApiModelProperty(value = "终端号", name = "terminalNo")
    private String terminalNo;

    @ApiModelProperty(value = "人员工号", name = "staffNo")
    private String staffNo;

    @ApiModelProperty(value = "身份证号", name = "idCardNo")
    private String idCardNo;

    @ApiModelProperty(value = "手机号", name = "mobileNo")
    private String mobileNo;

    @ApiModelProperty(value = "轨迹开始时间，毫秒时间戳", name = "startTime")
    private Long startTime;

    @ApiModelProperty(value = "轨迹结束时间，毫秒时间戳", name = "endTime")
    private Long endTime;

    @ApiModelProperty(value = "轨迹点数量", name = "total")
    private Integer total;

    @ApiModelProperty(value = "轨迹点", name = "points")
    private List<Point> points;

    @ApiModelProperty(value = "第三方原始数据JSON", name = "rawJson")
    private String rawJson;

    @Data
    public static class Point {
        @ApiModelProperty(value = "终端号", name = "terminalNo")
        private String terminalNo;

        @ApiModelProperty(value = "历元时间，毫秒时间戳", name = "gt")
        private Long gt;

        @ApiModelProperty(value = "经度", name = "lon")
        private BigDecimal lon;

        @ApiModelProperty(value = "纬度", name = "lat")
        private BigDecimal lat;

        @ApiModelProperty(value = "高度", name = "alt")
        private BigDecimal alt;

        @ApiModelProperty(value = "速度", name = "speed")
        private BigDecimal speed;

        @ApiModelProperty(value = "方向", name = "direction")
        private BigDecimal direction;

        @ApiModelProperty(value = "定位状态", name = "gs")
        private Integer gs;

        @ApiModelProperty(value = "定位模式", name = "lm")
        private Integer lm;

        @ApiModelProperty(value = "卫星数", name = "sn")
        private Integer sn;

        @ApiModelProperty(value = "第三方原始数据JSON", name = "rawJson")
        private String rawJson;
    }
}
