package com.njcn.msgpush.module.push.dal.dataobject.channel;

import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.msgpush.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * @author caozehui
 * @data 2026-02-06
 * @description 渠道服务商配置表对应的数据对象
 */
@Data
@TableName("push_channel_provider_config")
@EqualsAndHashCode(callSuper = true)
public class ChannelProviderConfigDO extends BaseDO {
    /**
     * 主键ID
     */
    private Long id;

    /**
     * 渠道类型：sms/email/app
     */
    private String channel;

    /**
     * 服务商名称：中国电信/阿里云/UniPush
     */
    private String providerName;

    /**
     * 服务商类型：telecom/aliyun/unipush
     */
    private String providerType;

    /**
     * API地址
     * 对于 UniPush，可配置为自定义API地址，如未配置则使用默认地址 https://restapi.getui.com/v2/
     */
    private String apiUrl;

    private String appKey;

    private String secret;

    /**
     * 电信sms服务所需接入码
     */
    private String extno;

    /**
     * app推送服务所需的appId
     */
    private String appId;

    /**
     * 额外配置（JSON格式）
     */
    private String extraConfig;

    /**
     * 优先级（数字越小优先级越高）
     */
    private Integer priority;

    /**
     * 是否启用：0-禁用 1-启用（手动控制）
     */
    private Integer enabled;

    /**
     * 健康状态：0-异常 1-正常（自动检测）
     */
    private Integer healthStatus;

    /**
     * 连续失败次数（自动统计）
     */
    private Integer failureCount;

    /**
     * 最后失败时间（自动记录）
     */
    private LocalDateTime lastFailureTime;

}
