1
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "User" (
|
||||
"id" TEXT NOT NULL,
|
||||
"email" TEXT NOT NULL,
|
||||
"password" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"role" TEXT NOT NULL DEFAULT 'asesor',
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Cliente" (
|
||||
"id" TEXT NOT NULL,
|
||||
"nombre" TEXT NOT NULL,
|
||||
"empresa" TEXT,
|
||||
"email" TEXT,
|
||||
"telefono" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Cliente_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Cotizacion" (
|
||||
"id" TEXT NOT NULL,
|
||||
"numero" TEXT NOT NULL,
|
||||
"fecha" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"vigencia" TIMESTAMP(3) NOT NULL,
|
||||
"moneda" TEXT NOT NULL DEFAULT 'MXN',
|
||||
"tipoCambio" TEXT NOT NULL DEFAULT 'NA',
|
||||
"proyecto" TEXT NOT NULL DEFAULT 'MKT Digital',
|
||||
"esquemaPago" TEXT NOT NULL DEFAULT 'Pago Unico/Mensual',
|
||||
"estado" TEXT NOT NULL DEFAULT 'borrador',
|
||||
"incluirBonos" BOOLEAN NOT NULL DEFAULT false,
|
||||
"incluirFinanciamiento" BOOLEAN NOT NULL DEFAULT false,
|
||||
"observaciones" TEXT,
|
||||
"clienteId" TEXT NOT NULL,
|
||||
"asesorId" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Cotizacion_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ServicioCatalogo" (
|
||||
"id" TEXT NOT NULL,
|
||||
"nombre" TEXT NOT NULL,
|
||||
"descripcion" TEXT,
|
||||
"fase" INTEGER NOT NULL DEFAULT 1,
|
||||
"tipoPago" TEXT NOT NULL DEFAULT 'unico',
|
||||
"precioBase" DOUBLE PRECISION NOT NULL,
|
||||
"tiempoEntrega" TEXT NOT NULL DEFAULT '4 - 10 dias',
|
||||
"entregablesDefault" JSONB NOT NULL DEFAULT '[]',
|
||||
"categoria" TEXT NOT NULL DEFAULT 'otros',
|
||||
"variante" TEXT,
|
||||
"activo" BOOLEAN NOT NULL DEFAULT true,
|
||||
"orden" INTEGER NOT NULL DEFAULT 0,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ServicioCatalogo_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ServicioCotizado" (
|
||||
"id" TEXT NOT NULL,
|
||||
"cotizacionId" TEXT NOT NULL,
|
||||
"servicioCatalogoId" TEXT NOT NULL,
|
||||
"fase" INTEGER NOT NULL,
|
||||
"tipoPago" TEXT NOT NULL,
|
||||
"precio" DOUBLE PRECISION NOT NULL,
|
||||
"tiempoEntrega" TEXT NOT NULL,
|
||||
"entregables" JSONB NOT NULL DEFAULT '[]',
|
||||
"notas" TEXT,
|
||||
"seleccionado" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ServicioCotizado_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "PlanBucefaloCotizacion" (
|
||||
"id" TEXT NOT NULL,
|
||||
"cotizacionId" TEXT NOT NULL,
|
||||
"nivel" TEXT NOT NULL DEFAULT 'basico',
|
||||
"precio" DOUBLE PRECISION NOT NULL,
|
||||
"seleccionado" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "PlanBucefaloCotizacion_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Configuracion" (
|
||||
"id" TEXT NOT NULL,
|
||||
"clave" TEXT NOT NULL,
|
||||
"valor" TEXT NOT NULL,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Configuracion_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Bono" (
|
||||
"id" TEXT NOT NULL,
|
||||
"numero" INTEGER NOT NULL,
|
||||
"titulo" TEXT NOT NULL,
|
||||
"descripcion" TEXT NOT NULL,
|
||||
"activo" BOOLEAN NOT NULL DEFAULT true,
|
||||
|
||||
CONSTRAINT "Bono_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "FinanciamientoPlan" (
|
||||
"id" TEXT NOT NULL,
|
||||
"meses" INTEGER NOT NULL,
|
||||
"tasa" DOUBLE PRECISION NOT NULL,
|
||||
"comision" DOUBLE PRECISION NOT NULL,
|
||||
"montoMinimo" DOUBLE PRECISION NOT NULL,
|
||||
"iva" DOUBLE PRECISION NOT NULL DEFAULT 0.16,
|
||||
|
||||
CONSTRAINT "FinanciamientoPlan_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Cotizacion_numero_key" ON "Cotizacion"("numero");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "PlanBucefaloCotizacion_cotizacionId_key" ON "PlanBucefaloCotizacion"("cotizacionId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Configuracion_clave_key" ON "Configuracion"("clave");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "FinanciamientoPlan_meses_key" ON "FinanciamientoPlan"("meses");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Cotizacion" ADD CONSTRAINT "Cotizacion_clienteId_fkey" FOREIGN KEY ("clienteId") REFERENCES "Cliente"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "Cotizacion" ADD CONSTRAINT "Cotizacion_asesorId_fkey" FOREIGN KEY ("asesorId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ServicioCotizado" ADD CONSTRAINT "ServicioCotizado_cotizacionId_fkey" FOREIGN KEY ("cotizacionId") REFERENCES "Cotizacion"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ServicioCotizado" ADD CONSTRAINT "ServicioCotizado_servicioCatalogoId_fkey" FOREIGN KEY ("servicioCatalogoId") REFERENCES "ServicioCatalogo"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "PlanBucefaloCotizacion" ADD CONSTRAINT "PlanBucefaloCotizacion_cotizacionId_fkey" FOREIGN KEY ("cotizacionId") REFERENCES "Cotizacion"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -0,0 +1,69 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "ServicioCatalogo" ADD COLUMN "categoriaId" TEXT;
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Categoria" (
|
||||
"id" TEXT NOT NULL,
|
||||
"nombre" TEXT NOT NULL,
|
||||
"descripcion" TEXT,
|
||||
"color" TEXT NOT NULL DEFAULT '#6b7280',
|
||||
"activo" BOOLEAN NOT NULL DEFAULT true,
|
||||
"orden" INTEGER NOT NULL DEFAULT 0,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Categoria_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Paquete" (
|
||||
"id" TEXT NOT NULL,
|
||||
"nombre" TEXT NOT NULL,
|
||||
"descripcion" TEXT,
|
||||
"activo" BOOLEAN NOT NULL DEFAULT true,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Paquete_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "FasePaquete" (
|
||||
"id" TEXT NOT NULL,
|
||||
"paqueteId" TEXT NOT NULL,
|
||||
"nombre" TEXT NOT NULL,
|
||||
"orden" INTEGER NOT NULL DEFAULT 0,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "FasePaquete_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "ServicioPaquete" (
|
||||
"id" TEXT NOT NULL,
|
||||
"servicioCatalogoId" TEXT NOT NULL,
|
||||
"fasePaqueteId" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "ServicioPaquete_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Categoria_nombre_key" ON "Categoria"("nombre");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "ServicioPaquete_servicioCatalogoId_fasePaqueteId_key" ON "ServicioPaquete"("servicioCatalogoId", "fasePaqueteId");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "FasePaquete" ADD CONSTRAINT "FasePaquete_paqueteId_fkey" FOREIGN KEY ("paqueteId") REFERENCES "Paquete"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ServicioCatalogo" ADD CONSTRAINT "ServicioCatalogo_categoriaId_fkey" FOREIGN KEY ("categoriaId") REFERENCES "Categoria"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ServicioPaquete" ADD CONSTRAINT "ServicioPaquete_servicioCatalogoId_fkey" FOREIGN KEY ("servicioCatalogoId") REFERENCES "ServicioCatalogo"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "ServicioPaquete" ADD CONSTRAINT "ServicioPaquete_fasePaqueteId_fkey" FOREIGN KEY ("fasePaqueteId") REFERENCES "FasePaquete"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -0,0 +1,2 @@
|
||||
-- AlterTable
|
||||
ALTER TABLE "ServicioCatalogo" DROP COLUMN "categoria";
|
||||
@@ -0,0 +1,3 @@
|
||||
# Please do not edit this file manually
|
||||
# It should be added in your version-control system (e.g., Git)
|
||||
provider = "postgresql"
|
||||
Reference in New Issue
Block a user