CreateTaskRequest.java
package fr.tiogars.chat.domains.task.models;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
/** Defines the business data required to create a Task. */
@Schema(description = "Business data required to create a Task.")
public record CreateTaskRequest(
@Schema(example = "CUSTOMER", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank String code,
@Schema(example = "Customer", requiredMode = Schema.RequiredMode.REQUIRED)
@NotBlank String label,
@Schema(example = "Customer Task")
String description,
TaskStatus status,
TaskPriority priority,
java.time.LocalDate dueDate,
String assignedTo,
java.util.List<@jakarta.validation.constraints.NotNull @jakarta.validation.constraints.Positive Long> tagIds,
@jakarta.validation.constraints.Positive Long nomenclatureId
) {
public CreateTaskRequest {
status = status == null ? TaskStatus.TODO : status;
priority = priority == null ? TaskPriority.NORMAL : priority;
tagIds = tagIds == null ? java.util.List.of() : java.util.List.copyOf(tagIds);
}
public CreateTaskRequest(String code, String label, String description) {
this(code, label, description, TaskStatus.TODO, TaskPriority.NORMAL, null, null, java.util.List.of(), null);
}
}