package com.zcloud.personnel.positioning.dto;

import com.alibaba.cola.dto.Command;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * web-client
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FenceUpdateCmd extends Command {
    @ApiModelProperty(value = "主键", name = "id")
    private Long id;

    @ApiModelProperty(value = "围栏编码", name = "fenceCode")
    private String fenceCode;

    @ApiModelProperty(value = "围栏名称", name = "fenceName")
    private String fenceName;

    @ApiModelProperty(value = "围栏范围 COMPANY_AREA公司区域 ELECTRONIC电子围栏 WORK_AREA作业区 SILENCE静默区", name = "fenceScope")
    private String fenceScope;

    @ApiModelProperty(value = "FindS围栏业务类型", name = "fenceBizName")
    private String fenceBizName;

    @ApiModelProperty(value = "企业id/公司id（公司及子公司数据隔离）", name = "corpinfoId")
    private String corpinfoId;

    @ApiModelProperty(value = "企业名称/公司名称", name = "corpinfoName")
    private String corpinfoName;

    @ApiModelProperty(value = "所属公司编码", name = "orgCode")
    private String orgCode;

    @ApiModelProperty(value = "所属公司名称", name = "orgName")
    private String orgName;

    @ApiModelProperty(value = "关联区域id", name = "areaId")
    private Long areaId;

    @ApiModelProperty(value = "关联区域名称", name = "areaName")
    private String areaName;

    @ApiModelProperty(value = "坐标系", name = "coor")
    private String coor;

    @ApiModelProperty(value = "空间类型 INDOOR室内 OUTDOOR室外", name = "spaceType")
    private String spaceType;

    @ApiModelProperty(value = "建筑id", name = "buildingId")
    private Long buildingId;

    @ApiModelProperty(value = "楼层", name = "floor")
    private Integer floor;

    @ApiModelProperty(value = "围栏多边形坐标", name = "polygonJson")
    private String polygonJson;

    @ApiModelProperty(value = "中心点经度", name = "centerLon")
    private BigDecimal centerLon;

    @ApiModelProperty(value = "中心点纬度", name = "centerLat")
    private BigDecimal centerLat;

    @ApiModelProperty(value = "是否静默区", name = "silence")
    private Integer silence;

    @ApiModelProperty(value = "生效开始时间", name = "effectStart")
    private LocalDateTime effectStart;

    @ApiModelProperty(value = "生效结束时间", name = "effectEnd")
    private LocalDateTime effectEnd;

    @ApiModelProperty(value = "生效周期配置", name = "effectPeriodJson")
    private String effectPeriodJson;

    @ApiModelProperty(value = "状态 ENABLED启用 DISABLED停用", name = "status")
    private String status;

    @ApiModelProperty(value = "FindS围栏id", name = "findsFenceId")
    private Long findsFenceId;

    @ApiModelProperty(value = "FindS围栏编码", name = "findsFenceCode")
    private String findsFenceCode;

    @ApiModelProperty(value = "同步状态 SUCCESS/FAIL/WAIT", name = "syncStatus")
    private String syncStatus;

    @ApiModelProperty(value = "最后同步时间", name = "lastSyncTime")
    private LocalDateTime lastSyncTime;

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

    @ApiModelProperty(value = "备注", name = "remarks")
    private String remarks;
}
