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 ) {}