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:
co-authored by
Claude Opus 5
parent
20f535d485
commit
4e103beb27
@@ -0,0 +1,26 @@
|
||||
-- Propuesta consultiva con IA: tabla nueva.
|
||||
-- ADITIVA. No toca ninguna tabla ni fila existente.
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "PropuestaIA" (
|
||||
"id" TEXT NOT NULL,
|
||||
"cotizacionId" TEXT NOT NULL,
|
||||
"estado" TEXT NOT NULL DEFAULT 'borrador',
|
||||
"contenidoIA" JSONB NOT NULL,
|
||||
"contenidoEditado" JSONB,
|
||||
"traza" JSONB,
|
||||
"avisos" JSONB NOT NULL DEFAULT '[]',
|
||||
"modelo" TEXT NOT NULL,
|
||||
"aprobadaPor" TEXT,
|
||||
"aprobadaAt" TIMESTAMP(3),
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "PropuestaIA_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS "PropuestaIA_cotizacionId_idx" ON "PropuestaIA"("cotizacionId");
|
||||
|
||||
ALTER TABLE "PropuestaIA"
|
||||
ADD CONSTRAINT "PropuestaIA_cotizacionId_fkey"
|
||||
FOREIGN KEY ("cotizacionId") REFERENCES "Cotizacion"("id")
|
||||
ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user