| 
5 | 5 | import jakarta.validation.constraints.NotBlank;  | 
6 | 6 | import jakarta.validation.constraints.Pattern;  | 
7 | 7 | import jakarta.validation.constraints.Size;  | 
 | 8 | +import lombok.AllArgsConstructor;  | 
 | 9 | +import lombok.Builder;  | 
8 | 10 | import lombok.Getter;  | 
9 |  | -import lombok.Setter;  | 
10 | 11 | import org.hibernate.validator.constraints.URL;  | 
11 | 12 | 
 
  | 
12 | 13 | @Getter  | 
13 |  | -@Setter  | 
 | 14 | +@Builder  | 
 | 15 | +@AllArgsConstructor  | 
14 | 16 | @Schema(description = "솜커톤 참가자 요청 DTO")  | 
15 | 17 | public class SomParticipantRequestDto {  | 
 | 18 | + | 
16 | 19 |     @NotBlank(message = "참가자 이름은 필수 입력 값입니다.")  | 
17 | 20 |     @Size(max = 50, message = "참가자 이름은 최대 50자까지 입력 가능합니다.")  | 
18 | 21 |     @Schema(description = "참가자 이름", example = "유승완", required = true)  | 
19 |  | -    private String participantName; // 참가자 이름  | 
 | 22 | +    private final String participantName; // 참가자 이름  | 
20 | 23 | 
 
  | 
21 | 24 |     @NotBlank(message = "학번은 필수 입력 값입니다.")  | 
22 | 25 |     @Pattern(regexp = "^[0-9]{8}$", message = "학번은 8자리 숫자여야 합니다.")  | 
23 | 26 |     @Schema(description = "학번 (8자리 숫자)", example = "20250001", required = true)  | 
24 |  | -    private String studentId;  | 
 | 27 | +    private final String studentId;  | 
25 | 28 | 
 
  | 
26 | 29 |     @NotBlank(message = "학과는 필수 입력 값입니다.")  | 
27 | 30 |     @Size(max = 100, message = "학과는 최대 100자까지 입력 가능합니다.")  | 
28 | 31 |     @Schema(description = "학과", example = "컴퓨터소프트웨어공학과", required = true)  | 
29 |  | -    private String department; // 학과  | 
 | 32 | +    private final String department; // 학과  | 
30 | 33 | 
 
  | 
31 | 34 |     @NotBlank(message = "학년은 필수 입력 값입니다.")  | 
32 | 35 |     @Pattern(regexp = "^[1-4]$", message = "학년은 1~4 사이의 숫자여야 합니다.")  | 
33 | 36 |     @Schema(description = "학년 (1~4)", example = "3", required = true)  | 
34 |  | -    private String grade; // 학년  | 
 | 37 | +    private final String grade; // 학년  | 
35 | 38 | 
 
  | 
36 | 39 |     @NotBlank(message = "연락처는 필수 입력 값입니다.")  | 
37 | 40 |     @Pattern(regexp = "^010-[0-9]{4}-[0-9]{4}$", message = "연락처는 '010-XXXX-XXXX' 형식이어야 합니다.")  | 
38 | 41 |     @Schema(description = "연락처 (010-XXXX-XXXX 형식)", example = "010-1234-5678", required = true)  | 
39 |  | -    private String contact; // 연락처  | 
 | 42 | +    private final String contact; // 연락처  | 
40 | 43 | 
 
  | 
41 | 44 |     @NotBlank(message = "이메일은 필수 입력 값입니다.")  | 
42 | 45 |     @Email(message = "올바른 이메일 형식이 아닙니다.")  | 
43 | 46 |     @Schema( description =  "이메일 주소",  example =  "[email protected]",  required =  true)   | 
44 |  | -    private String email; // 이메일  | 
 | 47 | +    private final String email; // 이메일  | 
45 | 48 | 
 
  | 
46 | 49 |     @URL(protocol = "https", host = "github.com", message = "GitHub URL이 올바르지 않습니다.")  | 
47 |  | -    @Schema(description = "GitHub 주소", example = "https://github.com/username", required = true)  | 
48 |  | -    private String githubLink; // 깃허브 주소  | 
 | 50 | +    @Schema(description = "GitHub 주소", example = "https://github.com/username")  | 
 | 51 | +    private final String githubLink; // 깃허브 주소  | 
49 | 52 | 
 
  | 
50 | 53 |     @NotBlank(message = "포트폴리오 주소는 필수 입력 값입니다.")  | 
51 | 54 |     @URL(protocol = "https", message = "포트폴리오 URL이 올바르지 않습니다.")  | 
52 | 55 |     @Schema(description = "포트폴리오 주소", example = "https://portfolio.com/username", required = true)  | 
53 |  | -    private String portfolioLink; // 포트폴리오 주소  | 
 | 56 | +    private final String portfolioLink; // 포트폴리오 주소  | 
54 | 57 | }  | 
0 commit comments