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,
|
// 门店照片:个人(小微)商户拿到微信收款能力必须交的两张图。线下门店场所口径下是实体门头照;
|
// 线上商品服务是店铺首页截图。企业主体不填这两项。
|
@Size(max = 512) String storeHeaderUrl,
|
@Size(max = 512) String storeIndoorUrl,
|
// 经营详细地址(进件的 detail_addr):线下口径下个人(小微)商户必填。它**不是**证件地址——
|
// registeredAddress 走通道的 legal_addr,两个字段在通道侧语义不同,不要互相顶替。
|
// 放在记录末尾是为了不动既有构造点的参数位置(见 MerchantExistingOnboardingTests 的工厂方法)。
|
@Size(max = 255) String businessAddress
|
) {}
|