Propuesta IA: modelo PropuestaIA y capa de datos economicos

La capa de economia existe para que el dinero viva en un solo sitio y nunca
cruce hacia el prompt. El pipeline recibe de ahi solo refPartida y nombre.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
urieljareth
2026-07-28 18:10:51 -06:00
co-authored by Claude Opus 5
parent 20f535d485
commit 4e103beb27
4 changed files with 173 additions and 0 deletions
+25
View File
@@ -66,6 +66,7 @@ model Cotizacion {
servicios ServicioCotizado[]
planBucefalo PlanBucefaloCotizacion?
registrosHoras RegistroHoras[]
propuestasIA PropuestaIA[]
@@index([clienteId])
@@index([asesorId])
@@ -220,6 +221,30 @@ model RegistroHoras {
@@index([estadoPago])
}
// Documento consultivo generado por IA a partir del contexto humano de la cotizacion.
// Se guarda por separado lo que produjo el modelo y lo que edito el asesor, para poder
// mostrar que cambio y para no perder el original al editar.
model PropuestaIA {
id String @id @default(cuid())
cotizacionId String
estado String @default("borrador") // borrador | aprobada
contenidoIA Json
contenidoEditado Json?
// Traza de la generacion: modelo, intentos por paso, tokens y aciertos de cache.
traza Json?
// Hallazgos de validacion y de contenido que el asesor debe revisar antes de enviar.
avisos Json @default("[]")
modelo String
aprobadaPor String?
aprobadaAt DateTime?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
cotizacion Cotizacion @relation(fields: [cotizacionId], references: [id], onDelete: Cascade)
@@index([cotizacionId])
}
model Configuracion {
id String @id @default(cuid())
clave String @unique