package cn.hanghui.outapi.platform.tenant.entity.dto.auth.fkj;

import cn.hanghui.outapi.platform.tenant.entity.config.fkj.device.template.FkjDeviceDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * @author shisl
 * @package cn.hanghui.outapi.platform.tenant.entity.dto
 * @class IotDeviceConfigVo
 * @date 2023/12/5 下午2:11
 * @description
 */
@Data
public class FkjAuthDeviceDto {

    private Long id;

    @ApiModelProperty(value = "设备编号")
    @NotNull(message = "请选择设备编号")
    private String sn;

    @ApiModelProperty(value = "购买方公司id")
    @NotNull(message = "请选择购买方公司")
    private Long purchaserId;

    @ApiModelProperty(value = "应用类型id")
    @NotNull(message = "请选择应用类型")
    private Long applicationTypeId;

    @ApiModelProperty(value = "设备型号(硬件)id")
    @NotNull(message = "请选择设备型号(硬件)")
    private Long deviceModelHardwareId;

    @ApiModelProperty(value = "设备型号(环境)id")
    @NotNull(message = "请选择设备型号(环境)")
    private Long deviceModelEnvironmentId;

    @ApiModelProperty(value = "系统类型 1-蚂蚁OS 2-非蚂蚁OS")
    @NotNull(message = "请选择系统类型")
    @Min(value = 1,message = "请选择系统类型")
    @Max(value = 2,message = "请选择系统类型")
    private Integer systemTypeCode;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @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 = "副屏轮播图")
    private List<String> secondaryPageImages;

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

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

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

    @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;


}
