1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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
) {
}