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

import cn.hanghui.outapi.platform.common.entity.po.Base;
import cn.hanghui.outapi.platform.tenant.typehandle.IntegerTypeHandler;
import cn.hanghui.outapi.platform.tenant.typehandle.StringTypeHandler;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.aspectj.weaver.ast.Not;

import java.time.LocalDate;
import java.util.List;

/**
 * 访客机设备
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "fkj_device",autoResultMap = true)
@ApiModel(value="FkjDevice对象", description="访客机设备")
public class FkjDevice extends Base {

    @ApiModelProperty(value = "设备编号")
    @TableField("sn")
    private String sn;

    @ApiModelProperty(value = "购买方公司id")
    @TableField("purchaser_id")
    private Long purchaserId;

    @ApiModelProperty(value = "应用类型id")
    @TableField("application_type_id")
    private Long applicationTypeId;

    @ApiModelProperty(value = "设备型号(硬件)id")
    @TableField("device_model_hardware_id")
    private Long deviceModelHardwareId;

    @ApiModelProperty(value = "设备型号(环境)id")
    @TableField("device_model_environment_id")
    private Long deviceModelEnvironmentId;

    @ApiModelProperty(value = "系统类型 1-蚂蚁OS 2-非蚂蚁OS")
    @TableField("system_type_code")
    private Integer systemTypeCode;

    @ApiModelProperty(value = "启用支付宝刷脸功能 false-不启用 true-启用(默认)")
    @TableField("use_alipay_face")
    private Boolean useAlipayFace;

    @ApiModelProperty(value = "启用身份证功能 false-不启用 true-启用(默认)")
    @TableField("use_idcard")
    private Boolean useIdcard;

    @ApiModelProperty(value = "是否人证比对 默认：tue")
    @TableField("use_person_card")
    private Boolean usePersonCard;

    @ApiModelProperty(value = "否启用无证登记 默认：false")
    @TableField("no_idcard_register")
    private Boolean noIdcardRegister;

    @ApiModelProperty(value = "无证是否输入手机号 默认：true")
    @TableField("no_idcard_input_phone")
    private Boolean noIdcardInputPhone;

    @ApiModelProperty(value = "微信扫码登记 默认：false")
    @TableField("wx_scan_register")
    private Boolean wxScanRegister;

    @ApiModelProperty(value = "微信二维码地址")
    @TableField("wx_qrcode_url")
    private String wxQrcodeUrl;

    @ApiModelProperty(value = "支付宝扫码登记 默认：false")
    @TableField("zfb_scan_register")
    private Boolean zfbScanRegister;

    @ApiModelProperty(value = "支付宝二维码地址")
    @TableField("zfb_qrcode_url")
    private String zfbQrcodeUrl;

    @ApiModelProperty(value = "获取受访人列表地址")
    @TableField("visitee_url")
    private String visiteeUrl;

    @ApiModelProperty(value = "获取辖区配置地址")
    @TableField("area_url")
    private String areaUrl;

    @ApiModelProperty(value = "进出记录推送地址")
    @TableField("transit_push_url")
    private String transitPushUrl;

    @ApiModelProperty(value = "是否打印访客单 默认：false")
    @TableField("print_visitor_list")
    private Boolean printVisitorList;

    @ApiModelProperty(value = "是否启用签离 默认：true")
    @TableField("sign_out")
    private Boolean signOut;

    @ApiModelProperty(value = "是否启用风险人核查 默认：false")
    @TableField("risk_check")
    private Boolean riskCheck;

    @ApiModelProperty(value = "是否隐藏签离、设置等按钮 默认：false")
    @TableField("hidden_button")
    private Boolean hiddenButton;

    @ApiModelProperty(value = "否启用通用二维码 默认：true")
    @TableField("general_qrcode")
    private Boolean generalQrcode;

    @ApiModelProperty(value = "通用二维码标题")
    @TableField("general_qrcode_title")
    private String generalQrcodeTitle;

    @ApiModelProperty(value = "是否启用梯控二维码 默认：false")
    @TableField("eth_qrcode")
    private Boolean ethQrcode;

    @ApiModelProperty(value = "梯控二维码标题")
    @TableField("eth_qrcode_title")
    private String ethQrcodeTitle;

    @ApiModelProperty(value = "梯控二维码接口")
    @TableField("eth_qrcode_url")
    private String ethQrcodeUrl;

    @ApiModelProperty(value = "是否启用闸机二维码 默认：false")
    @TableField("gate_qrcode")
    private Boolean gateQrcode;

    @ApiModelProperty(value = "闸机二维码标题")
    @TableField("gate_qrcode_title")
    private String gateQrcodeTitle;

    @ApiModelProperty(value = "闸机二维码接口")
    @TableField("gate_qrcode_url")
    private String gateGrcodeUrl;

    @ApiModelProperty(value = "选择受访人超时时间 90（秒)")
    @TableField("choose_visitee_timeout")
    private Integer chooseVisiteeTimeout;

    @ApiModelProperty(value = "刷身份证超时时间 15（秒）")
    @TableField("read_idcard_timeout")
    private Integer readIdcardTimeout;

    @ApiModelProperty(value = "输入身份证超时时间 30（秒）")
    @TableField("input_idcard_timeout")
    private Integer inputIdcardTimeout;

    @ApiModelProperty(value = "输入手机号超时时间 30（秒）")
    @TableField("input_phone_timeout")
    private Integer inputPhoneTimeout;

    @ApiModelProperty(value = "签离扫码超时时间 15（秒）")
    @TableField("sing_out_timeout")
    private Integer singOutTimeout;

    @ApiModelProperty(value = "结果页超时时间 5（秒）")
    @TableField("result_page_timeout")
    private Integer resultPageTimeout;

    @ApiModelProperty(value = "刷脸超时时间（秒）")
    @TableField("face_timeout")
    private Integer faceTimeout;
    @ApiModelProperty(value = "1v1比对超时时间（秒）")
    @TableField("one_to_one_timeout")
    private Integer oneToOneTimeout;
    @ApiModelProperty(value = "联网查询超时时间（秒）")
    @TableField("connect_search_timeout")
    private Integer connectSearchTimeout;

    @ApiModelProperty(value = "支付宝比对成功语音 默认: 比对成功")
    @TableField("success_voice")
    private String successVoice;

    @ApiModelProperty(value = "支付宝比对失败语音 默认: 比对失败，请重试或刷身份证")
    @TableField("fail_voice")
    private String failVoice;

    @ApiModelProperty(value = "访客登记成功语音 默认: 正在打印访客单")
    @TableField("register_success_voice")
    private String registerSuccessVoice;

    @ApiModelProperty(value = "刷身份证提示音语 默认: 请刷身份证")
    @TableField("read_idcard_voice")
    private String readIdcardVoice;

    @ApiModelProperty(value = "输入身份证提示音语 默认: 请输入身份证")
    @TableField("input_idcard_voice")
    private String inputIdcardVoice;

    @ApiModelProperty(value = "输入手机号提示音语 默认: 请输入手机号")
    @TableField("input_phone_voice")
    private String inputPhoneVoice;

    @ApiModelProperty(value = "联网信息查询提示音语 默认: 正在联网信息查询，请耐心等待")
    @TableField("connect_search_voice")
    private String connectSearchVoice;

    @ApiModelProperty(value = "签离扫码提示语音 默认: 请将二维码对准设备的扫码窗")
    @TableField("sing_out_voice")
    private String singOutVoice;

    @ApiModelProperty(value = "设备管理员密码")
    @TableField("mpassword")
    private String mpassword;

    @ApiModelProperty(value = "语音音量0-100 默认：80")
    @TableField("voice_volume")
    private Integer voiceVolume;

    @ApiModelProperty(value = "授权状态  false：未授权 true：已授权")
    private Boolean status;

    @ApiModelProperty(value = "提示标语（图片）")
    @TableField("reminder")
    private String reminder;

    @ApiModelProperty(value = "不脱敏的字段 1-姓名 2-身份证 3-手机号")
    @TableField(value = "not_desensitized_column",typeHandler = IntegerTypeHandler.class)
    private List<Integer> notDesensitizedColumn;

    @ApiModelProperty(value = "登记页面不脱敏的字段 1-姓名 2-身份证")
    @TableField(value = "register_not_desensitized_column",typeHandler = IntegerTypeHandler.class)
    private List<Integer> registerNotDesensitizedColumn;

    @ApiModelProperty(value = "刷脸失败跳转手输 false-关闭 true-开启 默认false")
    @TableField("face_fail_hand_input")
    private Boolean faceFailHandInput;

    @ApiModelProperty(value = "是否启用注意事项提示语 true-启用 false-不启用")
    @TableField("reminder_auth")
    private Boolean reminderAuth;

    @ApiModelProperty(value = "提示标语播报文本")
    private String reminderPlayText;

    @ApiModelProperty(value = "到期日期")
    private LocalDate expirationDate;

    @ApiModelProperty(value = "拜访事由")
    private String visitReason;

    @ApiModelProperty(value = "是否启用确定倒计时")
    private Boolean confirmCountdownSwitch;

    @ApiModelProperty(value = "确定倒计时时长（s）")
    private Integer confirmCountdownTime;

    @ApiModelProperty(value = "是否启用副屏轮播图")
    private Boolean secondaryPageSwitch;

    @ApiModelProperty(value = "副屏轮播图")
    @TableField(value = "secondary_page_images",typeHandler = StringTypeHandler.class)
    private List<String> secondaryPageImages;

    @ApiModelProperty(value = "是否启用副屏处理中页面")
    private Boolean processingPageSwitch;

    @ApiModelProperty(value = "副屏处理中页面图片")
    private String processingPageImage;

    @ApiModelProperty(value = "启用进出记录推送 默认: true")
    private Boolean transitPushSwitch;
    @ApiModelProperty(value = "进出记录推送数据是否加解密 默认true")
    private Boolean transitPushEncryptSwitch;
    @ApiModelProperty(value = "进出记录推送数据是否加解密appKey")
    private String transitPushEncryptAppKey;
    @ApiModelProperty(value = "进出记录推送数据是否加解密appSecrete")
    private String transitPushEncryptAppSecret;
    @ApiModelProperty(value = "进出记录推送数据是否加解密PrivateKey")
    private String transitPushEncryptPrivateKey;


}
