| 필드 | 타입 | 설명 | null 허용 / 기본값 |
|---|---|---|---|
title |
String |
업무 제목 | 필수, null 가능하지만 생성 시 검증 필요 |
description |
String |
업무 상세 내용 | 선택 입력, null 가능 |
priority |
TaskPriority |
우선순위 | null 시 MEDIUM 기본값 |
visibility |
TaskVisibility |
공개 범위 | null 시 DEPARTMENT 기본값 |
assigneeId |
Long |
담당자 ID | null 가능 |
dueDate |
LocalDate |
마감일 | null 가능 |
// 제목 앞뒤 공백 제거
public String titleTrimmed() {
return title == null ? null : title.trim();
}
// 우선순위가 null이면 MEDIUM 반환
public TaskPriority priorityOrDefault() {
return priority != null ? priority : TaskPriority.MEDIUM;
}
// 공개 범위가 null이면 DEPARTMENT 반환
public TaskVisibility visibilityOrDefault() {
return visibility != null ? visibility : TaskVisibility.DEPARTMENT;
}
설명:
titleTrimmed(): 제목 앞뒤 공백 제거 → DB 저장 시 불필요한 공백 제거priorityOrDefault(): null이면 기본 MEDIUM 적용visibilityOrDefault(): null이면 기본 DEPARTMENT 적용TaskCreateRequest req = ... // 컨트롤러에서 전달받음
TaskEntity entity = TaskEntity.builder()
.title(req.titleTrimmed())
.description(req.description)
.priority(req.priorityOrDefault())
.visibility(req.visibilityOrDefault())
.assigneeId(req.assigneeId)
.dueDate(req.dueDate)
.build();