feat(backend): persist tasks and generated message history
- add EntityTask domain and CRUD API backed by PostgreSQL - relate generated messages directly to tasks and delete on task removal - move preview generation to backend Llama endpoint - migrate frontend task APIs from localStorage to backend endpoints - update tests and CLAUDE rules for backend-owned LLM/persistence
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package com.condado.newsletter.dto
|
||||
|
||||
import com.condado.newsletter.model.EntityTask
|
||||
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,
|
||||
@field:NotBlank val prompt: String,
|
||||
@field:NotBlank val scheduleCron: String,
|
||||
@field:NotBlank val emailLookback: String
|
||||
)
|
||||
|
||||
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
|
||||
)
|
||||
|
||||
data class EntityTaskResponseDto(
|
||||
val id: UUID,
|
||||
val entityId: UUID,
|
||||
val name: String,
|
||||
val prompt: String,
|
||||
val scheduleCron: String,
|
||||
val emailLookback: String,
|
||||
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,
|
||||
active = task.active,
|
||||
createdAt = task.createdAt
|
||||
)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user