24868ec1b8
Captures DashboardLayout, WidgetInstance, SearchProvider, CalendarSource, DkvModuleConfig, DkvVehicleMaster, DkvInvoiceHistory, SmtpConfig. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
171 lines
5.0 KiB
SQL
171 lines
5.0 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "DashboardLayout" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"layouts" JSONB NOT NULL DEFAULT '{}',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "DashboardLayout_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "WidgetInstance" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"widgetType" TEXT NOT NULL,
|
|
"config" JSONB NOT NULL DEFAULT '{}',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "WidgetInstance_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SearchProvider" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT,
|
|
"tenantId" TEXT,
|
|
"name" TEXT NOT NULL,
|
|
"urlTemplate" TEXT NOT NULL,
|
|
"isDefault" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "SearchProvider_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "CalendarSource" (
|
|
"id" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"exchangeMode" TEXT,
|
|
"url" TEXT NOT NULL,
|
|
"username" TEXT,
|
|
"encryptedPassword" TEXT,
|
|
"color" TEXT DEFAULT '#3B82F6',
|
|
"isVisible" BOOLEAN NOT NULL DEFAULT true,
|
|
"syncIntervalMin" INTEGER NOT NULL DEFAULT 15,
|
|
"lastSyncAt" TIMESTAMP(3),
|
|
"lastSyncError" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CalendarSource_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "DkvModuleConfig" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"protocol" TEXT NOT NULL DEFAULT 'imap',
|
|
"host" TEXT,
|
|
"port" INTEGER,
|
|
"encryption" TEXT NOT NULL DEFAULT 'ssl-tls',
|
|
"folder" TEXT NOT NULL DEFAULT 'INBOX',
|
|
"senderFilter" TEXT,
|
|
"pollIntervalMin" INTEGER NOT NULL DEFAULT 60,
|
|
"isActive" BOOLEAN NOT NULL DEFAULT false,
|
|
"exportRecipient" TEXT,
|
|
"vehicleFormatString" TEXT NOT NULL DEFAULT '{Marke}/{Modell}/{Kennzeichen}',
|
|
"domain" TEXT,
|
|
"encryptedInboxCreds" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "DkvModuleConfig_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "DkvVehicleMaster" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"kennzeichen" TEXT NOT NULL,
|
|
"marke" TEXT NOT NULL,
|
|
"modell" TEXT NOT NULL,
|
|
"fahrer" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "DkvVehicleMaster_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "DkvInvoiceHistory" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"datumZeit" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"rechnungsnummer" TEXT NOT NULL,
|
|
"anzahlFahrzeuge" INTEGER NOT NULL DEFAULT 0,
|
|
"anzahlTransaktionen" INTEGER NOT NULL DEFAULT 0,
|
|
"status" TEXT NOT NULL,
|
|
"errorMessage" TEXT,
|
|
"exportFilename" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "DkvInvoiceHistory_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "SmtpConfig" (
|
|
"id" TEXT NOT NULL,
|
|
"tenantId" TEXT NOT NULL,
|
|
"host" TEXT NOT NULL,
|
|
"port" INTEGER NOT NULL DEFAULT 587,
|
|
"encryption" TEXT NOT NULL DEFAULT 'starttls',
|
|
"username" TEXT,
|
|
"encryptedPassword" TEXT,
|
|
"fromAddress" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "SmtpConfig_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "DashboardLayout_userId_key" ON "DashboardLayout"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "DashboardLayout_tenantId_idx" ON "DashboardLayout"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "WidgetInstance_userId_idx" ON "WidgetInstance"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "WidgetInstance_tenantId_idx" ON "WidgetInstance"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "SearchProvider_userId_idx" ON "SearchProvider"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CalendarSource_userId_idx" ON "CalendarSource"("userId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "CalendarSource_tenantId_idx" ON "CalendarSource"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "DkvModuleConfig_tenantId_key" ON "DkvModuleConfig"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "DkvModuleConfig_tenantId_idx" ON "DkvModuleConfig"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "DkvVehicleMaster_tenantId_idx" ON "DkvVehicleMaster"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "DkvVehicleMaster_tenantId_kennzeichen_key" ON "DkvVehicleMaster"("tenantId", "kennzeichen");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "DkvInvoiceHistory_tenantId_idx" ON "DkvInvoiceHistory"("tenantId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "DkvInvoiceHistory_datumZeit_idx" ON "DkvInvoiceHistory"("datumZeit");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "SmtpConfig_tenantId_key" ON "SmtpConfig"("tenantId");
|
|
|