package com.talentcard.server.business.merchant;
|
|
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.Pattern;
|
import jakarta.validation.constraints.Size;
|
|
public record MerchantOnboardingRequest(
|
@NotBlank @Pattern(regexp = "enterprise|individual") String subjectType,
|
@NotBlank @Size(max = 128) String subjectName,
|
@Size(max = 32) String creditCode,
|
@Size(max = 32) String subjectIdNumber,
|
@Pattern(regexp = "|fixed|long_term") String subjectCertificateValidityType,
|
@Pattern(regexp = "|\\d{4}-\\d{2}-\\d{2}") String subjectCertificateBeginDate,
|
@Pattern(regexp = "|\\d{4}-\\d{2}-\\d{2}") String subjectCertificateEndDate,
|
@Pattern(regexp = "|fixed|long_term") String licenseValidityType,
|
@Pattern(regexp = "|\\d{4}-\\d{2}-\\d{2}") String licenseBeginDate,
|
@Pattern(regexp = "|\\d{4}-\\d{2}-\\d{2}") String licenseEndDate,
|
@Size(max = 128) String registeredRegion,
|
@Pattern(regexp = "|\\d{6}") String registeredProvinceCode,
|
@Pattern(regexp = "|\\d{6}") String registeredCityCode,
|
@Pattern(regexp = "|\\d{6}") String registeredDistrictCode,
|
@Size(max = 255) String registeredAddress,
|
@Size(max = 128) String merchantName,
|
@Size(max = 128) String merchantShortName,
|
@Size(max = 64) String companyType,
|
@Size(max = 512) String businessLicenseUrl,
|
@Pattern(regexp = "|\\d{4}-\\d{2}-\\d{2}") String establishedDate,
|
@Size(max = 64) String registeredCapital,
|
@Size(max = 512) String legalIdFrontUrl,
|
@Size(max = 512) String legalIdBackUrl,
|
@Size(max = 255) String legalCertificateAddress,
|
// 法人本人手机号。微信实名认证走法人(contact_type=LEGAL)时必填,且必须是法人自己的号码;
|
// 与 contactMobile(联系人)是两个不同的人,不要把联系人号码当作法人号码填进来。
|
// 进件时选填,发起实名时校验必填。
|
@Pattern(regexp = "|1\\d{10}") String legalMobile,
|
@Size(max = 32) String administratorEmail,
|
@NotBlank @Size(max = 64) String contactName,
|
@NotBlank @Pattern(regexp = "1\\d{10}") String contactMobile,
|
@NotBlank @Pattern(regexp = "\\d{16,32}") String bankCardNumber,
|
@NotBlank @Pattern(regexp = "\\d{6}") String bankProvinceCode,
|
@NotBlank @Pattern(regexp = "\\d{6}") String bankCityCode,
|
@NotBlank @Pattern(regexp = "\\d{12}") String bankBranchCode,
|
@Size(max = 512) String settlementCardFrontUrl,
|
@Size(max = 512) String registrationAccountUrl,
|
// 门店照片:**线下经营的材料是一组三张**(门头照 F22、内景照 F24、收银台 F105),
|
// 通道在进件这一步就按 F-code 逐张核对,缺一张整笔驳回;企业与个人主体都要交。
|
@Size(max = 512) String storeHeaderUrl,
|
@Size(max = 512) String storeIndoorUrl,
|
// 经营详细地址(进件的 detail_addr):线下口径下个人(小微)商户必填。它**不是**证件地址——
|
// registeredAddress 走通道的 legal_addr,两个字段在通道侧语义不同,不要互相顶替。
|
// 放在记录末尾是为了不动既有构造点的参数位置(见 MerchantExistingOnboardingTests 的工厂方法)。
|
@Size(max = 255) String businessAddress,
|
// 店铺收银台照片(F105):线下经营门店材料三张里的第三张。同样放末尾,不动既有构造点。
|
@Size(max = 512) String storeCashierUrl
|
) {}
|