1 package fr.tiogars.chat.domains.task.models;
2
3 import io.swagger.v3.oas.annotations.media.Schema;
4 import jakarta.validation.constraints.NotBlank;
5
6
7 @Schema(description = "Business data required to create a Task.")
8 public record CreateTaskRequest(
9 @Schema(example = "CUSTOMER", requiredMode = Schema.RequiredMode.REQUIRED)
10 @NotBlank String code,
11 @Schema(example = "Customer", requiredMode = Schema.RequiredMode.REQUIRED)
12 @NotBlank String label,
13 @Schema(example = "Customer Task")
14 String description,
15 TaskStatus status,
16 TaskPriority priority,
17 java.time.LocalDate dueDate,
18 String assignedTo,
19 java.util.List<@jakarta.validation.constraints.NotNull @jakarta.validation.constraints.Positive Long> tagIds,
20 @jakarta.validation.constraints.Positive Long nomenclatureId
21 ) {
22 public CreateTaskRequest {
23 status = status == null ? TaskStatus.TODO : status;
24 priority = priority == null ? TaskPriority.NORMAL : priority;
25 tagIds = tagIds == null ? java.util.List.of() : java.util.List.copyOf(tagIds);
26 }
27
28 public CreateTaskRequest(String code, String label, String description) {
29 this(code, label, description, TaskStatus.TODO, TaskPriority.NORMAL, null, null, java.util.List.of(), null);
30 }
31 }