package vip.xiaonuo.coldchain.core.config;

/**
 * @author jackzhou
 * @version 1.0
 * @project jfcloud-coldchain
 * @description
 * @date 2024/11/1 15:02:07
 */
public interface JfcloudColdChainConstants {
    /**
     * TCP 服务端口
     */
    Integer SERVER_PORT = 40404;


    /**
     * 默认缓存方式
     */
    String DEFAULT_CACHE_TYPE = "redis";

    /**
     * 每 5 分钟定期执行设备缓存更新
     */
    Long CACHE_UPDATE_INTERVAL = 5 * 60 * 1000L;

    /**
     * influxDB default bucketName
     */
    String INFLUXDB_DEFAULT_BUCKET_NAME = "coldchain";

    /**
     * influxDB default Measurement
     */
    String INFLUXDB_DEFAULT_MEASUREMENT_NAME = "sensor_data";


    String MONITORTARGETREGION_CACHE_NAME = "monitorTargetRegion";
    String MONITORTARGET_CACHE_NAME = "monitorTarget";

    String MONITORDEVICE_CACHE_NAME = "monitorDevice";

    /**
     * 数据上报队列最大容量
     */
    int MAX_QUEUE_SIZE = 10;

    /**
     * 队列最大容量和写入数据库的时间间隔
     * 1分钟写入一次
     */
    long CHECK_INTERVAL_MS = 1 * 60 * 1000L;

    /**
     * 重试机制配置- 最大重试5次数
     */
    int MAX_RETRIES = 3;
    /**
     * 每次重试的间隔时间，单位：毫秒
     */
    int RETRY_DELAY_MS = 5000;

    /**
     * 消息推送限制固定时间内的最大推送次数，5分钟内推送1次
     */
    int MESS_PUSH_MAX_PUSH_COUNT = 1;
    /**
     * 消息推送限制的时间窗口，单位为毫秒（5分钟）
     */
    long MESS_PUSH_TIME_WINDOW = 5 * 60 * 1000;
    /**
     * redis 缓存用户推送消息频率限制
     */
    String REDIS_PUSH_HISTORY_KEY_PREFIX = "ALARM_PUSH_HISTORY";

    /**
     * 每 5 分钟定期执行设备缓存更新
     */
    Long OFFLINE_THRESHOLD_SECONDS = 5 * 60 * 1000L;

}
