package com.talentcard.server.business.talent; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Size; public record TalentCreateRequest( String openid, @NotBlank @Size(max = 64) String name, @NotBlank(message = "请输入手机号码") @Pattern(regexp = "^1\\d{10}$", message = "手机号须为11位数字") String mobile, @NotBlank(message = "请输入身份证号") @Pattern(regexp = "^[0-9A-Z]{18}$", message = "身份证号须为18位数字或大写英文字母") String idCardNo, @NotNull(message = "请选择性别") Byte gender, @Size(max = 128) String workUnit, @NotBlank(message = "请选择人才等级") @Pattern(regexp = "^(卓越人才卡|杰出人才卡|菁英人才卡|普通游客)$", message = "人才等级无效") String talentLevel, @NotBlank(message = "请输入人才卡号") @Pattern(regexp = "^[0-9A-Z-]{1,64}$", message = "人才卡号只能包含大写字母、数字和短横线") String talentCardNo, @NotBlank(message = "请选择本地或外地") @Pattern(regexp = "^(LOCAL|OUTSIDE)$", message = "来源地无效") String sourceAreaType, @NotBlank(message = "请输入工作地址") @Size(max = 255) String workAddress, @NotBlank(message = "请输入联系地址") @Size(max = 255) String contactAddress ) { }