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 = "Mutable business data of a Task.")
8 public record UpdateTaskRequest(
9 @Schema(example = "Customer", requiredMode = Schema.RequiredMode.REQUIRED)
10 @NotBlank String label,
11 @Schema(example = "Updated customer Task")
12 String description,
13 TaskStatus status,
14 TaskPriority priority,
15 java.time.LocalDate dueDate,
16 String assignedTo,
17 java.util.List<@jakarta.validation.constraints.NotNull @jakarta.validation.constraints.Positive Long> tagIds,
18 @jakarta.validation.constraints.Positive Long nomenclatureId
19 ) {
20 public UpdateTaskRequest {
21 status = status == null ? TaskStatus.TODO : status;
22 priority = priority == null ? TaskPriority.NORMAL : priority;
23 tagIds = tagIds == null ? java.util.List.of() : java.util.List.copyOf(tagIds);
24 }
25
26 public UpdateTaskRequest(String label, String description) {
27 this(label, description, TaskStatus.TODO, TaskPriority.NORMAL, null, null, java.util.List.of(), null);
28 }
29 }