letsbe-hub/prisma/migrations/20260111160942_add_enterpri.../migration.sql

144 lines
5.2 KiB
SQL

-- CreateEnum
CREATE TYPE "ErrorSeverity" AS ENUM ('INFO', 'WARNING', 'ERROR', 'CRITICAL');
-- CreateTable
CREATE TABLE "enterprise_clients" (
"id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"company_name" TEXT,
"contact_email" TEXT NOT NULL,
"contact_phone" TEXT,
"notes" TEXT,
"is_active" BOOLEAN NOT NULL DEFAULT true,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "enterprise_clients_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "enterprise_servers" (
"id" TEXT NOT NULL,
"client_id" TEXT NOT NULL,
"netcup_server_id" TEXT NOT NULL,
"nickname" TEXT,
"purpose" TEXT,
"is_active" BOOLEAN NOT NULL DEFAULT true,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"portainer_url" TEXT,
"portainer_username" TEXT,
"portainer_password_enc" TEXT,
CONSTRAINT "enterprise_servers_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "server_stats_snapshots" (
"id" TEXT NOT NULL,
"server_id" TEXT NOT NULL,
"client_id" TEXT NOT NULL,
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"cpu_percent" DOUBLE PRECISION,
"memory_used_mb" DOUBLE PRECISION,
"memory_total_mb" DOUBLE PRECISION,
"disk_read_mbps" DOUBLE PRECISION,
"disk_write_mbps" DOUBLE PRECISION,
"network_in_mbps" DOUBLE PRECISION,
"network_out_mbps" DOUBLE PRECISION,
"containers_running" INTEGER,
"containers_stopped" INTEGER,
CONSTRAINT "server_stats_snapshots_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "error_detection_rules" (
"id" TEXT NOT NULL,
"client_id" TEXT NOT NULL,
"name" TEXT NOT NULL,
"pattern" TEXT NOT NULL,
"severity" "ErrorSeverity" NOT NULL DEFAULT 'WARNING',
"is_active" BOOLEAN NOT NULL DEFAULT true,
"description" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
CONSTRAINT "error_detection_rules_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "detected_errors" (
"id" TEXT NOT NULL,
"server_id" TEXT NOT NULL,
"rule_id" TEXT NOT NULL,
"container_id" TEXT,
"container_name" TEXT,
"log_line" TEXT NOT NULL,
"context" TEXT,
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"acknowledged_at" TIMESTAMP(3),
"acknowledged_by" TEXT,
CONSTRAINT "detected_errors_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "security_verification_codes" (
"id" TEXT NOT NULL,
"client_id" TEXT NOT NULL,
"code" TEXT NOT NULL,
"action" TEXT NOT NULL,
"target_server_id" TEXT NOT NULL,
"expires_at" TIMESTAMP(3) NOT NULL,
"used_at" TIMESTAMP(3),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "security_verification_codes_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE INDEX "enterprise_servers_client_id_idx" ON "enterprise_servers"("client_id");
-- CreateIndex
CREATE UNIQUE INDEX "enterprise_servers_client_id_netcup_server_id_key" ON "enterprise_servers"("client_id", "netcup_server_id");
-- CreateIndex
CREATE INDEX "server_stats_snapshots_server_id_timestamp_idx" ON "server_stats_snapshots"("server_id", "timestamp");
-- CreateIndex
CREATE INDEX "server_stats_snapshots_client_id_timestamp_idx" ON "server_stats_snapshots"("client_id", "timestamp");
-- CreateIndex
CREATE INDEX "error_detection_rules_client_id_idx" ON "error_detection_rules"("client_id");
-- CreateIndex
CREATE INDEX "detected_errors_server_id_timestamp_idx" ON "detected_errors"("server_id", "timestamp");
-- CreateIndex
CREATE INDEX "detected_errors_rule_id_timestamp_idx" ON "detected_errors"("rule_id", "timestamp");
-- CreateIndex
CREATE INDEX "security_verification_codes_client_id_code_idx" ON "security_verification_codes"("client_id", "code");
-- AddForeignKey
ALTER TABLE "enterprise_servers" ADD CONSTRAINT "enterprise_servers_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "server_stats_snapshots" ADD CONSTRAINT "server_stats_snapshots_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "enterprise_servers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "server_stats_snapshots" ADD CONSTRAINT "server_stats_snapshots_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "error_detection_rules" ADD CONSTRAINT "error_detection_rules_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "detected_errors" ADD CONSTRAINT "detected_errors_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "enterprise_servers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "detected_errors" ADD CONSTRAINT "detected_errors_rule_id_fkey" FOREIGN KEY ("rule_id") REFERENCES "error_detection_rules"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "security_verification_codes" ADD CONSTRAINT "security_verification_codes_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;