2025-06-06 16:19:29 +08:00

40 lines
1.3 KiB
SQL

-- CreateTable
CREATE TABLE "Site" (
"id" SERIAL NOT NULL,
"name" TEXT NOT NULL,
"location" TEXT NOT NULL,
"inverterProvider" TEXT NOT NULL,
"emergencyContact" TEXT NOT NULL,
"lastSyncTimestamp" TIMESTAMP(3) NOT NULL,
"theoreticalMaxGeneration_kWh" DOUBLE PRECISION NOT NULL,
CONSTRAINT "Site_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "EnergyData" (
"id" SERIAL NOT NULL,
"type" TEXT NOT NULL,
"timestamp" TIMESTAMP(3) NOT NULL,
"value" DOUBLE PRECISION NOT NULL,
"consumptionSiteId" INTEGER,
"generationSiteId" INTEGER,
CONSTRAINT "EnergyData_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Site_name_key" ON "Site"("name");
-- CreateIndex
CREATE INDEX "EnergyData_consumptionSiteId_idx" ON "EnergyData"("consumptionSiteId");
-- CreateIndex
CREATE INDEX "EnergyData_generationSiteId_idx" ON "EnergyData"("generationSiteId");
-- AddForeignKey
ALTER TABLE "EnergyData" ADD CONSTRAINT "EnergyData_consumptionSiteId_fkey" FOREIGN KEY ("consumptionSiteId") REFERENCES "Site"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "EnergyData" ADD CONSTRAINT "EnergyData_generationSiteId_fkey" FOREIGN KEY ("generationSiteId") REFERENCES "Site"("id") ON DELETE SET NULL ON UPDATE CASCADE;