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.time.LocalDateTime;

/**
 * web-infrastructure
 *
 * @Author fangjiakai
 * @Date 2026-07-07
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("alarm_rule")
public class AlarmRuleDO extends BaseDO {
    /**
     * 规则编码
     */
    private String ruleCode;

    /**
     * 规则名称
     */
    private String ruleName;

    /**
     * 告警属性 COMPANY_AREA公司区域告警 FENCE电子围栏告警
     */
    private String alarmAttr;

    /**
     * FindS告警类型编码 CROSS_IN/CROSS_OUT/RETENTION/STAY等
     */
    private String alarmCode;

    /**
     * 告警类型名称
     */
    private String alarmName;

    /**
     * 是否启用
     */
    private Integer enable;

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

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

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

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

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

    /**
     * 围栏生效策略 WHOLE全部 SPECIFIED指定 NULL无
     */
    private String fenceEffectStrategy;

    /**
     * 应用对象类型 多个逗号分隔
     */
    private String trackTypes;

    /**
     * 碰撞对象类型
     */
    private String crashType;

    /**
     * FindS告警规则id
     */
    private Long findsRuleId;

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

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

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

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