package cn.hanghui.outapi.platform.tenant.entity.dto.proof;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * @author shisl
 * @package cn.hanghui.outapi.platform.tenant.entity.dto.proof
 * @class ProvisionalIdentityProofDeviceDto
 * @date 2024/5/13 上午11:23
 * @description
 */
@Data
public class ProvisionalIdentityProofDeviceDto implements Serializable {

    private Long id;

    //基本信息配置
    @ApiModelProperty(value = "设备编号", required = true)
    @NotBlank(message = "请输入设备sn")
    private String sn;

    @ApiModelProperty(value = "购买方公司id", required = true)
    @NotNull(message = "请输入购买方公司")
    private Long purchaserId;

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

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

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

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

    @ApiModelProperty(value = "临证须知主键ID", required = true)
    @NotNull(message = "请选择小程序授权配置名称")
    private Long provisionalProofNoticeId;

    //采集信息配置
    @ApiModelProperty(value = "启用支付宝刷脸功能 false-不启用 true-启用(默认)")
    private Boolean useAlipayFace;

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

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

    //三方接口接入配置
    @ApiModelProperty(value = "（new）启用三要素获取特殊码接口 默认：否")
    private Boolean specialCodeSwitch;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口地址")
    private String specialCodeUrl;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口数据是否加解密 默认true")
    private Boolean specialCodeEncryptSwitch;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口数据是否加解密appKey")
    private String specialCodeEncryptAppKey;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口数据是否加解密appSecrete")
    private String specialCodeEncryptAppSecret;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口数据是否加解密PrivateKey")
    private String specialCodeEncryptPrivateKey;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口超时时间：5s")
    private Integer specialCodeTimeout;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口超时提示语 默认-三要素获取特殊码接口请求超时")
    private String specialCodeTimeoutTips;
    @ApiModelProperty(value = "（new）三要素获取特殊码接口失败提示语 默认-三要素获取特殊码接口请求失败")
    private String specialCodeFailedTips;

    //查询地址配置
    @ApiModelProperty(value = "获取办证记录地址")
    private String identityProofRecordUrl;

    //推送地址配置
    @ApiModelProperty(value = "办证记录推送地址")
    private String identityProofRecordPushUrl;

    //功能配置
    @ApiModelProperty(value = "是否打印临时证明")
    private Boolean printIdentityProof;

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

    @ApiModelProperty(value = "是否开启小程序授权 默认：false")
    private Boolean miniAuth;

    //超时时长配置
    @ApiModelProperty(value = "二维码授权超时时长 20（秒）")
    private Integer authQrcodeTimeout;

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

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

    @ApiModelProperty(value = "成功结果页超时时间（普通版） 10（秒）")
    private Integer commonSuccessResultPageTimeout;

    @ApiModelProperty(value = "成功结果页超时时间（打印版） 5（秒）")
    private Integer printSuccessResultPageTimeout;

    @ApiModelProperty(value = "失败结果页超时时间（获取三要素失败） 10（秒）")
    private Integer userinfoFailedResultPageTimeout;

    @ApiModelProperty(value = "失败结果页超时时间（命中风险人员） 10（秒）")
    private Integer riskFailedResultPageTimeout;

    @ApiModelProperty(value = "失败结果页超时时间（其他） 5（秒）")
    private Integer commonFailedResultPageTimeout;

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

    //语音配置
    @ApiModelProperty(value = "支付宝刷脸人脸比对成功提示语音 默认: 比对成功")
    private String faceSuccessVoice;

    @ApiModelProperty(value = "支付宝刷脸人脸比对成功提示语音 默认: 比对失败，请再试一次或尝试其他方式办理")
    private String faceFailVoice;

    @ApiModelProperty(value = "办理成功语音提示 默认:办理成功")
    private String identityProofSuccessVoice;

    @ApiModelProperty(value = "打印证明提示音 默认:正在打印临时身份证明")
    private String printIdentityProofVoice;

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

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

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

    //辖区配置
    @ApiModelProperty(value = "单位标识")
    private String useCompanyCode;

    @ApiModelProperty(value = "使用单位")
    private String useCompanyName;

    @ApiModelProperty(value = "地区省市区")
    private String address;

    @ApiModelProperty(value = "派出所")
    private String pcsName;

    @ApiModelProperty(value = "派出所代码")
    private String pcsCode;

    //系统配置
    @ApiModelProperty(value = "设备管理员密码")
    private String mpassword;

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

    @ApiModelProperty(value = "刷脸失败跳转手输 false-关闭 true-开启 默认false")
    private Boolean faceFailHandInput;
    @ApiModelProperty(value = "首页标题")
    private String homePageTitle;
    @ApiModelProperty(value = "刷脸按钮文本")
    private String faceButtonText;
    @ApiModelProperty(value = "手输按钮文本")
    private String inputButtonText;
    @ApiModelProperty(value = "结果页-打印文本")
    private String resultPagePrintText;
    @ApiModelProperty(value = "结果页-非打印文本")
    private String resultPageNoPrintText;

    @ApiModelProperty(value = "凭证有效期")
    private Integer validTime;
    /**
     * 20240815产品说不是必填项 以后有商务法务问题开发概不负责
     */
    @ApiModelProperty(value = "签发单位")
    private String issuingAuthority;

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

    @ApiModelProperty(value = "是否加盖公章 false-关闭 true-开启 默认false")
    private Boolean officialSealSwitch;

    @ApiModelProperty(value = "公章图片")
    private String officialSealUrl;


}
