package com.talentcard.server.request; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; @Schema(name = "家属附属卡申请提交参数", description = "家属附属卡申请提交参数") public record DependentCardApplyRequest( @Schema(description = "主卡ID", example = "1", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "主卡ID不能为空") Long talentCardId, @Schema(description = "家属姓名", example = "张三", maxLength = 64, requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "家属姓名不能为空") @Size(max = 64, message = "家属姓名不能超过64个字符") String dependentName, @Schema(description = "家属身份证号", example = "510105199001011234", maxLength = 32, requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "家属证件号不能为空") @Size(max = 32, message = "家属证件号不能超过32个字符") @Pattern(regexp = "^[0-9]{17}[0-9X]$", message = "家属证件号格式不正确") String dependentIdCardNo, @Schema(description = "家属手机号", example = "13800138000", pattern = "^1[3-9][0-9]{9}$", requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "家属手机号不能为空") @Pattern(regexp = "^1[3-9][0-9]{9}$", message = "家属手机号格式不正确") String dependentMobile, @Schema(description = "与主卡持有人的关系", example = "配偶", maxLength = 32, requiredMode = Schema.RequiredMode.REQUIRED) @NotBlank(message = "家属关系不能为空") @Size(max = 32, message = "家属关系不能超过32个字符") String relation ) { }