Files
condado-newsletter/backend/src/main/kotlin/com/condado/newsletter/dto/EntityTaskDtos.kt
Gabriel Sancho 58c3a54d4a
All checks were successful
Build And Publish Production Image / Build And Publish Production Image (push) Successful in 50s
feat: add generation source handling for task creation and updates
2026-03-28 15:35:49 -03:00

54 lines
1.7 KiB
Kotlin

package com.condado.newsletter.dto
import com.condado.newsletter.model.EntityTask
import com.condado.newsletter.model.TaskGenerationSource
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import java.time.LocalDateTime
import java.util.UUID
data class EntityTaskCreateDto(
@field:NotNull val entityId: UUID,
@field:NotBlank val name: String,
val prompt: String,
@field:NotBlank val scheduleCron: String,
@field:NotBlank val emailLookback: String,
val generationSource: TaskGenerationSource = TaskGenerationSource.LLAMA
)
data class EntityTaskUpdateDto(
@field:NotNull val entityId: UUID,
@field:NotBlank val name: String,
@field:NotBlank val prompt: String,
@field:NotBlank val scheduleCron: String,
@field:NotBlank val emailLookback: String,
val generationSource: TaskGenerationSource? = null
)
data class EntityTaskResponseDto(
val id: UUID,
val entityId: UUID,
val name: String,
val prompt: String,
val scheduleCron: String,
val emailLookback: String,
val generationSource: TaskGenerationSource,
val active: Boolean,
val createdAt: LocalDateTime?
) {
companion object {
fun from(task: EntityTask): EntityTaskResponseDto =
EntityTaskResponseDto(
id = task.id!!,
entityId = task.virtualEntity.id!!,
name = task.name,
prompt = task.prompt,
scheduleCron = task.scheduleCron,
emailLookback = task.emailLookback,
generationSource = task.generationSource,
active = task.active,
createdAt = task.createdAt
)
}
}