package com.zcloud.personnel.positioning.persistence.dataobject;

import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * web-infrastructure
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("fence")
public class FenceDO extends BaseDO {
    /**
     * 围栏编码
     */
    private String fenceCode;

    /**
     * 围栏名称
     */
    private String fenceName;

    /**
     * 围栏范围 COMPANY_AREA公司区域 ELECTRONIC电子围栏 WORK_AREA作业区 SILENCE静默区
     */
    private String fenceScope;

    /**
     * FindS围栏业务类型
     */
    private String fenceBizName;

    /**
     * 企业id/公司id（公司及子公司数据隔离）
     */
    private String corpinfoId;

    /**
     * 企业名称/公司名称
     */
    private String corpinfoName;

    /**
     * 所属公司编码
     */
    private String orgCode;

    /**
     * 所属公司名称
     */
    private String orgName;

    /**
     * 关联区域id
     */
    private Long areaId;

    /**
     * 关联区域名称
     */
    private String areaName;

    /**
     * 坐标系
     */
    private String coor;

    /**
     * 空间类型 INDOOR室内 OUTDOOR室外
     */
    private String spaceType;

    /**
     * 建筑id
     */
    private Long buildingId;

    /**
     * 楼层
     */
    private Integer floor;

    /**
     * 围栏多边形坐标
     */
    private String polygonJson;

    /**
     * 中心点经度
     */
    private BigDecimal centerLon;

    /**
     * 中心点纬度
     */
    private BigDecimal centerLat;

    /**
     * 是否静默区
     */
    private Integer silence;

    /**
     * 生效开始时间
     */
    private LocalDateTime effectStart;

    /**
     * 生效结束时间
     */
    private LocalDateTime effectEnd;

    /**
     * 生效周期配置
     */
    private String effectPeriodJson;

    /**
     * 状态 ENABLED启用 DISABLED停用
     */
    private String status;

    /**
     * FindS围栏id
     */
    private Long findsFenceId;

    /**
     * FindS围栏编码
     */
    private String findsFenceCode;

    /**
     * 同步状态 SUCCESS/FAIL/WAIT
     */
    private String syncStatus;

    /**
     * Local desired-state revision used for guarded FindS writeback.
     */
    private String syncToken;

    /**
     * 最后同步时间
     */
    private LocalDateTime lastSyncTime;

    /**
     * 第三方原始数据
     */
    private String rawJson;
}
