package cn.hanghui.outapi.platform.common.entity.po;

import cn.hanghui.outapi.platform.tenant.entity.config.auth.DeviceConfigBean;
import cn.hanghui.outapi.platform.tenant.typehandle.DeviceConfigHandler;
import cn.hanghui.outapi.platform.tenant.typehandle.LongTypeHandler;
import cn.hanghui.outapi.platform.tenant.typehandle.StringTypeHandler;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;

import java.util.List;

/**
 * 账号授权配置
 */
@Data
@TableName(value = "account_auth_config", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
public class AccountAuthConfig extends Base {

    /**
     * 账户id
     */
    private Long accountId;

    /**
     * 购买方公司ID
     */
    private Long purchaserId;

    /**
     * HhArome权限开关 默认false:关闭 true:开启
     */
    private Boolean hhAromeSwitch;


    /**
     * 设备基本配置
     * <p>
     * DeviceConfigBean
     */
    @TableField(typeHandler = DeviceConfigHandler.class, value = "device_config", jdbcType = JdbcType.VARCHAR)
    private List<DeviceConfigBean> deviceConfig;

    /**
     * 系统配置 SystemConfigEnum
     * 隐藏底部导航栏
     * 禁止下拉通知栏
     * 应用是否自启动
     * 是否自动进入小程序
     * 启动页图片
     * 应用首页图片
     */
    @TableField(value = "system_config", typeHandler = StringTypeHandler.class)
    private List<String> systemConfig;


    /**
     * 使用配置 UseConfigEnum
     * 使用时间期限
     */
    @TableField(value = "use_config", typeHandler = StringTypeHandler.class)
    private List<String> useConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.PushConfigEnum
     * 推送地址配置
     */
    @TableField(value = "push_config", typeHandler = StringTypeHandler.class)
    private List<String> pushConfig;


    /**
     * -------------HHFace相关配置---------------
     **/
    @ApiModelProperty(value = "hhface权限开关 默认false:关闭 true:开启")
    private Boolean hhFaceSwitch;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceUseConfigEnum
     * hhface使用配置
     */
    @TableField(value = "hhface_use_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceUseConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceFaceConfigEnum
     * hhface支付宝刷脸启动核点配置
     */
    @TableField(value = "hhface_face_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceFaceConfig;

    /**
     * 商户平台id集合
     */
    @TableField(value = "hhface_face_config_tenant_ids", typeHandler = LongTypeHandler.class)
    private List<Long> hhfaceFaceConfigTenantIds;
    /**
     * 用户库id集合
     */
    @TableField(value = "hhface_face_config_user_lib_ids", typeHandler = LongTypeHandler.class)
    private List<Long> hhfaceFaceConfigUserLibIds;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceCollectConfigEnum
     * hhface采集配置
     */
    @TableField(value = "hhface_collect_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceCollectConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceThirdConfigEnum
     * hhface三方接口接入配置
     */
    @TableField(value = "hhface_third_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceThirdConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceResultConfigEnum
     * hhface结果页配置
     */
    @TableField(value = "hhface_result_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceResultConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceHardwareConfigEnum
     * hhface硬件模组配置
     */
    @TableField(value = "hhface_hardware_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceHardwareConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFacePushConfigEnum
     * hhface推送配置
     */
    @TableField(value = "hhface_push_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfacePushConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceFuncConfigEnum
     * hhface功能配置
     */
    @TableField(value = "hhface_func_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceFuncConfig;

    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.HhFaceSystemConfigEnum
     * hhface系统配置
     */
    @TableField(value = "hhface_system_config", typeHandler = StringTypeHandler.class)
    private List<String> hhfaceSystemConfig;


    /**-------------访客机权限配置---------------**/

    @ApiModelProperty(value = "访客机权限开关 默认false:关闭 true:开启")
    private Boolean fkjSwitch;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjUseConfigEnum
     */
    @ApiModelProperty(value = "访客机使用配置 FkjUseConfigEnum 获取枚举列表")
    @TableField(value = "fkj_use_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjUseConfig;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjCollectConfigEnum
     */
    @ApiModelProperty(value = "访客机采集配置 FkjCollectConfigEnum 获取枚举列表")
    @TableField(value = "fkj_collect_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjCollectConfig;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjQuseyAddressConfigEnum
     */
    @ApiModelProperty(value = "访客机查询地址配置 FkjQuseyAddressConfigEnum 获取枚举列表")
    @TableField(value = "fkj_query_address_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjQueryAddressConfig;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjPushConfigEnum
     */
    @ApiModelProperty(value = "访客机推送配置 FkjPushConfigEnum 获取枚举列表")
    @TableField(value = "fkj_push_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjPushConfig;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjFuncConfigEnum
     */
    @ApiModelProperty(value = "访客机功能配置 FkjFuncConfigEnum 获取枚举列表")
    @TableField(value = "fkj_func_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjFuncConfig;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjTimeoutDurationConfigEnum
     */
    @ApiModelProperty(value = "访客机超时时长配置 FkjTimeoutDurationConfigEnum 获取枚举列表")
    @TableField(value = "fkj_timeout_duration_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjTimeoutDurationConfig;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjVoiceConfigEnum
     */
    @ApiModelProperty(value = "访客机语音配置 FkjVoiceConfigEnum 获取枚举列表")
    @TableField(value = "fkj_voice_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjVoiceConfig;
    /**
     * @see cn.hanghui.outapi.platform.tenant.entity.enums.fkj.FkjSystemConfigEnum
     */
    @ApiModelProperty(value = "访客机系统配置 FkjSystemConfigEnum 获取枚举列表")
    @TableField(value = "fkj_system_config", typeHandler = StringTypeHandler.class)
    private List<String> fkjSystemConfig;


}
