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;

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

    @ApiModelProperty(value = "告警规则id", name = "ruleId")
    private Long ruleId;

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

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

    @ApiModelProperty(value = "告警等级", name = "level")
    private Integer level;

    @ApiModelProperty(value = "是否启用", name = "enable")
    private Integer enable;

    @ApiModelProperty(value = "进入/离开持续时间 秒", name = "crossDuration")
    private Long crossDuration;

    @ApiModelProperty(value = "滞留时长 分钟", name = "retentionMin")
    private BigDecimal retentionMin;

    @ApiModelProperty(value = "静止时间 分钟", name = "stayMin")
    private Integer stayMin;

    @ApiModelProperty(value = "静止时间 秒", name = "staticDuration")
    private Integer staticDuration;

    @ApiModelProperty(value = "速度上限 km/h", name = "overSpeed")
    private BigDecimal overSpeed;

    @ApiModelProperty(value = "全局速度上限 km/h", name = "globalOverSpeed")
    private BigDecimal globalOverSpeed;

    @ApiModelProperty(value = "低电量百分比", name = "lowBattery")
    private BigDecimal lowBattery;

    @ApiModelProperty(value = "超员人数", name = "crowdedNum")
    private Integer crowdedNum;

    @ApiModelProperty(value = "缺员人数", name = "lackedNum")
    private Integer lackedNum;

    @ApiModelProperty(value = "聚集持续时间 秒", name = "clusterDuration")
    private Integer clusterDuration;

    @ApiModelProperty(value = "聚集数量", name = "clusterQuantity")
    private Integer clusterQuantity;

    @ApiModelProperty(value = "聚集半径 米", name = "clusterRadius")
    private BigDecimal clusterRadius;

    @ApiModelProperty(value = "碰撞距离 米", name = "crashDistance")
    private BigDecimal crashDistance;

    @ApiModelProperty(value = "碰撞车速 km/h", name = "crashSpeed")
    private BigDecimal crashSpeed;

    @ApiModelProperty(value = "告警参数JSON", name = "alarmParamJson")
    private String alarmParamJson;

    @ApiModelProperty(value = "告警动作JSON", name = "alarmActionJson")
    private String alarmActionJson;
}
