-- CreateTable CREATE TABLE "hosts" ( "id" TEXT NOT NULL, "hostname" TEXT NOT NULL, "lastUpdate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "hosts_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "records" ( "id" TEXT NOT NULL, "hostname" TEXT NOT NULL, "timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "records_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "windows" ( "id" TEXT NOT NULL, "recordId" TEXT NOT NULL, "title" TEXT NOT NULL, "path" TEXT NOT NULL, "memory" INTEGER NOT NULL, CONSTRAINT "windows_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "screenshots" ( "id" TEXT NOT NULL, "recordId" TEXT NOT NULL, "fileId" TEXT NOT NULL, "filename" TEXT NOT NULL, "monitorName" TEXT NOT NULL, CONSTRAINT "screenshots_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "credentials" ( "id" TEXT NOT NULL, "hostname" TEXT NOT NULL, "username" TEXT NOT NULL, "browser" TEXT NOT NULL, "url" TEXT NOT NULL, "login" TEXT NOT NULL, "lastSyncTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "updatedAt" TIMESTAMP(3) NOT NULL, CONSTRAINT "credentials_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "passwords" ( "id" TEXT NOT NULL, "credentialId" TEXT NOT NULL, "value" TEXT NOT NULL, "timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "passwords_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "versions" ( "id" TEXT NOT NULL, "version" TEXT NOT NULL, "fileId" TEXT NOT NULL, "filename" TEXT NOT NULL, "checksum" TEXT NOT NULL, "uploadTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "isLatest" BOOLEAN NOT NULL DEFAULT false, CONSTRAINT "versions_pkey" PRIMARY KEY ("id") ); -- CreateTable CREATE TABLE "nssm" ( "id" TEXT NOT NULL, "fileId" TEXT NOT NULL, "filename" TEXT NOT NULL, "checksum" TEXT NOT NULL, "uploadTime" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT "nssm_pkey" PRIMARY KEY ("id") ); -- CreateIndex CREATE UNIQUE INDEX "hosts_hostname_key" ON "hosts"("hostname"); -- CreateIndex CREATE INDEX "records_hostname_timestamp_idx" ON "records"("hostname", "timestamp"); -- CreateIndex CREATE INDEX "records_timestamp_idx" ON "records"("timestamp"); -- CreateIndex CREATE INDEX "credentials_hostname_idx" ON "credentials"("hostname"); -- CreateIndex CREATE UNIQUE INDEX "credentials_hostname_username_browser_url_login_key" ON "credentials"("hostname", "username", "browser", "url", "login"); -- AddForeignKey ALTER TABLE "records" ADD CONSTRAINT "records_hostname_fkey" FOREIGN KEY ("hostname") REFERENCES "hosts"("hostname") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "windows" ADD CONSTRAINT "windows_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "records"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "screenshots" ADD CONSTRAINT "screenshots_recordId_fkey" FOREIGN KEY ("recordId") REFERENCES "records"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "credentials" ADD CONSTRAINT "credentials_hostname_fkey" FOREIGN KEY ("hostname") REFERENCES "hosts"("hostname") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "passwords" ADD CONSTRAINT "passwords_credentialId_fkey" FOREIGN KEY ("credentialId") REFERENCES "credentials"("id") ON DELETE CASCADE ON UPDATE CASCADE;