View Javadoc
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   /** Defines the business data required to create a Task. */
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  }