package common


type WithfileuploadSignatory struct {
	// <ext>core:true</ext> 【签署方类型】签署方类型 【作用】 指定签署方类型 1、组织签署方：需签署的组织，可设置签署节点（签字、审批、签章、执业章签署等） 2、个人签署方：需签署的个人，只支持个人签字 3、批量个人签署方：可在一份文件中一次性添加多个签署方，并支持批量指定签署 【传参】 取值范围：COMPANY（组织），PERSONAL（个人），S_P_BATCH（批量个人签署方）。
	TenantType string `json:"tenantType"`
	// <ext>core:true</ext> 【签署方名称】签署方名称 【传参】 1、组织签署方需传入工商营业执照上的真实单位名称；个人签署方传入个人真实姓名。 2、最大长度：200（包含）。 3、请勿传入错误，否则会导致认证不通过。 4、组织签署方统一社会信用代码和签署方名称必传1项。
	TenantName string `json:"tenantName,omitempty"`
	// <ext>core:true</ext> 【经办人姓名】经办人姓名 【作用】 1、指定组织签署方的经办人姓名 2、个人签署方无需传入该参数，将使用tenantName作为签署方姓名
	ReceiverName string `json:"receiverName,omitempty"`
	// <ext>core:true</ext> 【经办人证件号】经办人证件号 【作用】 1、用于查询用户，作为组织签署方的经办人或个人签署方 【传参】 1、传入该参数查询用户，若用户不存在时，则使用证件号创建新用户，并将该用户加入组织。新建用户时默认证件类型为“大陆身份证”。 2、证件号查询到多个用户时，优先取已实名的用户，若存在多个实名用户，则优先取最近登录或通过接口进行操作的用户。 3、证件号、联系方式均传入时，则以证件号为准查询用户，并校验联系方式是否被占用，若占用则返回报错提示。 4、没有绑定联系方式，仅通过证件号创建的用户，只能通过扫脸登录的方式登录电子签章系统（扫脸登录为付费功能，需联系电子签章系统管理员开启功能）。 5、使用证件号创建的新用户，或查询到的未认证用户，将使用此证件号进行实名认证 6、与经办人实名认证的证件号（cardNo）同时传入时以此参数为准
	CardId string `json:"cardId,omitempty"`
	// <ext>core:true</ext> 【经办人联系方式】经办人联系方式 【作用】 1、用于查询用户，作为组织签署方的经办人或个人签署方 【传参】 1、可传入用户手机号或者邮箱。 2、手机号允许使用大陆、港澳台、国际手机号，手机号格式为：区号+空格+手机号，例：852 9xxxxxxx ，大陆手机号可以不传区号。 3、邮箱需传入符合格式的字符串，例：xxxxxxxx@163.com。 4、未传入证件号时，可传入该参数查询用户，若用户不存在时，则使用传入的联系方式创建新用户，并将该用户加入组织。 5、若证件号和联系方式同时传入，则以证件号为准查询用户，并校验联系方式是否被占用，若占用则返回报错提示。
	Contact string `json:"contact,omitempty"`
	// <ext>core:true</ext> 【经办人成员编号】经办人成员编号 【传参】 1、当未传入证件号、联系方式时，可使用成员编号、第三方业务系统用户id查询用户，作为组织签署方的经办人，或个人签署方。 2、成员编号、第三方业务系统用户id均传入时，以成员编号为准。 3、若使用成员编号查询用户，若用户不存在，则将使用传入的成员编号创建新用户，并将该用户加入组织。
	ReceiverNumber string `json:"receiverNumber,omitempty"`
	// <ext>core:true</ext> 【经办人第三方业务系统用户id】经办人第三方业务系统用户id 【作用】 1、当未传入证件号、联系方式时，可使用成员编号、第三方业务系统用户id查询用户，作为组织签署方的经办人，或个人签署方。 2、成员编号、第三方业务系统用户id均传入时，以成员编号为准。 3、使用该参数查询用户，若用户不存在时，将会报错提示。
	OpenUserId string `json:"openUserId,omitempty"`
	// <ext>core:true</ext> 【业务系统标识】业务系统标识 【作用】 1：根据第三方业务系统用户id查询系统成员/用户信息时使用 2：涉及到多套业务系统集成且不同系统间第三方业务系统用户id可能重复时需要传入该参数
	SystemCode string `json:"systemCode,omitempty"`
	// <ext>format:email;deprecated:true</ext> 【经办人邮箱】经办人邮箱 【作用】 当传入contact且传参为手机号，若该接收人未绑定邮箱，可传入该参数为接收人绑定邮箱
	Email string `json:"email,omitempty"`
	// 【批量个人签署方信息】批量个人签署方信息 【作用】 可一次性传入多个个人签署方信息，最多支持300个 【传参】 当tenantType（签署方类型）传值为S_P_BATCH（批量个人签署方）时，此参数必填
	BatchSignatoryInfo []*BatchSignatoryInfo `json:"batchSignatoryInfo,omitempty"`
	// <ext>core:true</ext> 【签署方编号】签署方编号 【作用】 支持业务系统传入签署方唯一标识，方便后续通过此唯一标识定位签署方，一份电子签约文件中每个签署方的编号不允许重复
	SignatoryNo string `json:"signatoryNo,omitempty"`
	// 【统一社会信用代码】统一社会信用代码 【作用】 通过统一社会信用代码查询指定单位作为签署方 【传参】 1、同时传入统一社会信用代码和签署方名称时，优先根据统一社会信用代码查询单位： （1）查询到的单位名称与传入签署方名称一致，则指定单位为签署方 （2）查询到的单位名称与传入签署方名称不一致时，若单位未认证则更新单位名称，若单位已认证则会在签署时提示签署方重新进行单位认证 2、若统一社会信用代码未能查询到单位时，将使用组织签署方名称新建单位，若单位名称已存在，将会返回报错 3、组织签署方统一社会信用代码和签署方名称必传1项
	CompanyRegisterNo string `json:"companyRegisterNo,omitempty"`
	// <ext>core:true</ext> 【签署方签署顺序】签署方签署顺序 【传参】 1、需按顺序签署，可分别设置签署方的serialNo为1,2,3。 2、需无序签署，可设置签署方的serialNo为1,1,1或 2,2,2 ，只要数字一样，则代表相同的签署顺序。 3、自定义定义顺序，可设置serialNo为1,2,2,3,4,4,6,7时，则表示第一个先签署，后两个同时签署； 第4个第3个顺序签署，依次类推。 4、签署方传入了签署顺序，以传入的为准，未传入顺序的签署方将按添加的顺序生成serialNo，例如有3个签署方，则按添加顺序将serialNo设置为1,2,3。 【特殊说明】 1、用印流程的签署方为非预设，或预设但允许发起时添加/删除预设签署方，则此参数传入的签署顺序生效 2、用印流程中预设了签署方且不允许发起时添加/删除预设签署方，则传入的签署方顺序将无效，将按照用印流程中预设顺序进行签署
	SerialNo *int64 `json:"serialNo"`
	// <ext>core:true;deprecated:true</ext> 【内部接收方用印流程id】内部接收方用印流程id 【作用】 如文件中需内部法人单位作为接收方进行组织签章时，需要指定内部法人单位所使用的印章和签章人时，可通过此参数指定电子签章平台提前预设好的用印流程。签署时将使用该用印流程-发起主体中预设的第一个组织签章节点指定的印章范围和签章人，作为此内部法人单位组织签章节点的印章和签章人 【传参】 用印流程id和用印名称必传其一，均传入以用印流程id为准。
	CategoryId string `json:"categoryId,omitempty"`
	// <ext>core:true;deprecated:true</ext> 【内部接收方用印流程名称】内部接收方用印流程名称 【传参】 用印流程id和用印名称必传其一，均传入以用印流程id为准。
	CategoryName string `json:"categoryName,omitempty"`
	// <ext>core:true</ext> 【签署节点】签署节点 【作用】 即组织签署方下可设置不同的签署节点进行签署，如组织签署、个人签字、审批 【特殊说明】 外部组织签署方仅支持指定签署人，不能指定印章id
	Actions []*WithfileuploadAction `json:"actions,omitempty"`
	// 【批量签署位置】批量签署位置 【作用】 1、可针对批量个人签署方指定一个签署区域，所包含的个人签署方都在这个签署区域内进行签署 2、可以设置一个签署位置的起始位置和大小，系统将根据这个位置和大小从左到右、从上到下，为每个签署方依次生成一个签署位置 【传参】 仅在当tenantType（签署方类型）传值为S_P_BATCH（批量个人签署方）时，生效
	BatchSignatoryRects []*BatchSignatoryRect `json:"batchSignatoryRects,omitempty"`
	// 【个人认证方式】个人认证方式 【作用】 签署方内的用户未认证时，可指定其个人认证方式 【传参】 取值范围：NONEED（无需认证），DEFAULT（默认实名认证方式，手机号、银行卡、人脸识别认证任选一种），FACE（人脸识别认证），BANK（银行卡认证），IVSANDFACE（手机号+人脸识别认证），BANKANDFACE（银行卡+人脸识别认证）；不传值默认为：用印流程配置。
	AuthMode string `json:"authMode,omitempty"`
	// 【个人认证的证件类型】个人认证的证件类型 【作用】 签署方内的用户未认证时，可指定其个人认证时使用的默认证件类型 【传参】 取值范围：IDCARD（二代身份证），PASSPORT（护照），HKMP（港澳通行证），MTPS（台胞证），OTHER（其他）；不传值默认为：idCARD（二代身份证）。
	PaperType string `json:"paperType,omitempty"`
	// 【经办人实名认证的证件号】经办人实名认证的证件号 【作用】 组织签署方经办人和个人签署方未认证时，可指定其认证时的默认证件号；若该用户已认证，此参数不会生效 【传参】 与经办人证件号（cardID）同时传入时，以经办人证件号（cardID）为准
	CardNo string `json:"cardNo,omitempty"`
	// 【认证时可修改项】认证时可修改项 【作用】 用于控制组织签署方经办人和个人签署方在实名认证时，可以修改哪些接口传入的信息 【传参】 1、取值范围：NONE（所有参数都不允许修改），NAME（姓名），CARDNO（证件号），MOBILE（手机号），BANKNO（银行账号），BANKPHONE（银行预留手机号）；可选多项；不传值默认为：除了手机号外所有参数都允许修改。 2、如同时传了NONE和其他参数，接口将会报错。其他值可传入多项，传入的值即代表可以修改。
	ModifyFields []string `json:"modifyFields,omitempty"`
	SignAuthConfig *SignAuthConfigBean `json:"signAuthConfig"`
	// 【是否全文浏览后才能签署】是否全文浏览后才能签署 【传参】 取值范围：true（需全文浏览），false（无需全文浏览）；不传值默认为：用印流程配置。 【特殊说明】 若为用印流程预设的签署方，将忽略该接口传参，使用流程预设配置
	ViewAllContract *bool `json:"viewAllContract,omitempty"`
	// <ext>deprecated:true</ext> 【个人签名类型要求】个人签名类型要求 【作用】 签署方下的个人进行签字时可使用的签名类型，包括： 1、系统签名：系统自动生成的签名 2、自定义签名：手写或上传图片生成的签名 3、Ukey签名：使用Ukey中的数字证书和章面签署 4、移动签名：使用移动设备中存储的数字证书和章面进行签署 【传参】 取值范围：PersonalSeal_System（系统签名），PersonalSeal_Custom（自定义签名），PersonalSeal_Ukey（Ukey签名），PersonalSeal_Mobile（移动签名）；可选多项；不传值默认为：用印流程配置。  【特殊说明】 仅对非预设签署方有效（非预设签署方：不是流程中预设的签署方，而是发起时接口添加的签署方）
	PersonalSealType string `json:"personalSealType,omitempty"`
	// 【个人签名类型要求】个人签名类型要求  【作用】  签署方下的个人进行签字时可使用的签名类型，包括：  1、系统签名：系统自动生成的签名  2、自定义签名：手写或上传图片生成的签名 3、系统名章：用户创建时或实名认证后，系统按用户姓名自动生成的名章  4、自定义名章：用户在个人中心或签署页选择章模或上传图片制作的名章 5、Ukey签名：使用Ukey中的数字证书和章面签署  6、移动签名：使用移动设备中存储的数字证书和章面进行签署  【传参】  取值范围：PersonalSignature_System（系统签名），PersonalSignature_Custom（自定义签名），PersonalSeal_System（系统名章），PersonalSeal_Custom（自定义名章），PersonalSeal_Ukey（Ukey签名），PersonalSeal_Mobile（移动签名）；可选多项；不传值默认为：用印流程配置。   【特殊说明】  仅对非预设签署方有效（非预设签署方：不是流程中预设的签署方，而是发起时接口添加的签署方）
	PersonalRequireSealType string `json:"personalRequireSealType,omitempty"`
	// 【是否每次需重新手写个人签名】是否每次需重新手写个人签名 【传参】 取值范围：true（每次重新手写），false（使用已有签名）；不传值默认为：用印流程配置。 【特殊说明】 1、签署方允许使用的签名类型要求中包括“自定义签名”时才会生效，如果指定使用个人名章或系统签名，则不生效 2、若为用印流程预设的签署方，将忽略该接口传参，使用流程预设配置
	NeedHandwrittenSeal *bool `json:"needHandwrittenSeal,omitempty"`
	// 【是否允许经办人修改签署节点】是否允许经办人修改签署节点 【作用】  通过此参数可控制接收方经办人，是否允许修改签署节点信息，包括组织签章节点的印章/签章人、个人签字的签批人 【传参】  取值范围：true（允许），false（不允许）；不传值默认为：false（不允许）。
	ChangeSigner *bool `json:"changeSigner,omitempty"`
	// <ext>deprecated:true</ext> 【指定签字人备注】指定签字人备注
	InviteRemark string `json:"inviteRemark,omitempty"`
	// 【是否允许当面签】是否允许当面签 【作用】 实际签署场景中，可能个人接收方就在发起方对面（如线下开户场景），且不方便操作（如未携带手机时），个人接收方可以直接在发起方设备操作进行认证、签署 【传参】 取值范围：true（允许当面签），false（不允许当面签）；不传值默认为：用印流程配置。
	FaceSign *bool `json:"faceSign,omitempty"`
	// 【当面签设备】当面签设备    【作用】    个人签署方可使用的当面签设备     【传参】   取值范围：PC_MOBILE（电脑或手机），INTEGRATED_MACHINE（一体机）；不传值默认为：取用印流程配置。
	FaceSignMethod string `json:"faceSignMethod,omitempty"`
	// 【一体机品牌型号】一体机品牌型号 【作用】 一体机当面签时，指定一体机的品牌型号 【传参】 取值范围：M30A (捷宇M30A，目前仅支持这种型号)
	IntegratedMachineModel string `json:"integratedMachineModel,omitempty"`
	// 【未实名用户确认签署时在一体机读取身份证】 未实名用户确认签署时在一体机读取身份证  【作用】   未实名的用户可通过一体机读取身份证的方式获取姓名和证件号，指定是否必须读取身份   【传参】   取值范围：READ_ID_CARD（必须读取身份证信息） ，READ_ID_CARD_BY_SPONSOR（允许发起人操作跳过读取身份证）。
	ReadUserAuthInfoMethod string `json:"readUserAuthInfoMethod,omitempty"`
	// 【消息提醒】消息提醒 【作用】 轮到该签署方签署时，该签署方下所有签署人是否发送消息通知 【传参】 1、取值范围：true（发送），false（不发送）；不传值默认为：true（发送）。 2、若用印流程中关闭消息通知，则该参数传参无效，将不发送消息通知
	Remind *bool `json:"remind,omitempty"`
	// 【签署方语言】签署方语言 【作用】 指定签署方登录系统时，默认的系统页面语言环境 【传参】 取值范围：zh_CN（中文），en_US（英文）；不传值默认为：zh_CN（中文）。
	Language string `json:"language,omitempty"`
	// 【是否添加员工】是否添加员工 【作用】 组织签署方中传入未加入组织经办人或签署节点的签署人时，是否加入对应的签署方所在法人单位；该参数仅对为内部组织的签署方生效，接收方默认都加入，不受此参数控制 【传参】 取值范围：true（添加），false（不添加）；不传值默认为：true（添加）。
	AddEmployee *bool `json:"addEmployee,omitempty"`
	// 【签署方在指定位置必须签署】签署方在指定位置必须签署 【作用】 控制签署方是否在指定位置必须签署，当前参数未传入时取文件签署要求中mustSign（指定位置必须签署）的参数值，传入了值以传入的为准，未传入值时，取用印流程配置。 【传参】 取值范围：true（必须签署），false（不必须签署）；不传值取文件签署要求mustSign（指定位置必须签署）的配置。
	MustSign *bool `json:"mustSign,omitempty"`
	// 【签署方在指定位置外可签署】签署方在指定位置外可签署 【作用】 控制签署方是否在指定位置必须签署，当前参数未传入时取文件签署要求中extraSign（指定位置外可签署）的参数值，传入了值以传入的为准，未传入值时，取用印流程配置。 【传参】 取值范围：true（可签署），false（不可签署）；不传值取文件签署要求extraSign（指定位置外可签署）的配置。
	CanExtraSign *bool `json:"canExtraSign,omitempty"`
}
