rwadurian/backend/services/backup-service/prisma/migrations/20241204000000_init/migration.sql

66 lines
2.1 KiB
SQL

-- CreateTable
CREATE TABLE "backup_shares" (
"share_id" BIGSERIAL NOT NULL,
"user_id" BIGINT NOT NULL,
"account_sequence" VARCHAR(12) NOT NULL,
"public_key" VARCHAR(130) NOT NULL,
"party_index" INTEGER NOT NULL DEFAULT 2,
"threshold" INTEGER NOT NULL DEFAULT 2,
"total_parties" INTEGER NOT NULL DEFAULT 3,
"encrypted_share_data" TEXT NOT NULL,
"encryption_key_id" VARCHAR(64) NOT NULL,
"status" VARCHAR(20) NOT NULL DEFAULT 'ACTIVE',
"access_count" INTEGER NOT NULL DEFAULT 0,
"last_accessed_at" TIMESTAMP(3),
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updated_at" TIMESTAMP(3) NOT NULL,
"revoked_at" TIMESTAMP(3),
CONSTRAINT "backup_shares_pkey" PRIMARY KEY ("share_id")
);
-- CreateTable
CREATE TABLE "share_access_logs" (
"log_id" BIGSERIAL NOT NULL,
"share_id" BIGINT NOT NULL,
"user_id" BIGINT NOT NULL,
"action" VARCHAR(20) NOT NULL,
"source_service" VARCHAR(50) NOT NULL,
"source_ip" VARCHAR(45) NOT NULL,
"success" BOOLEAN NOT NULL DEFAULT true,
"error_message" TEXT,
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "share_access_logs_pkey" PRIMARY KEY ("log_id")
);
-- CreateIndex
CREATE UNIQUE INDEX "backup_shares_user_id_key" ON "backup_shares"("user_id");
-- CreateIndex
CREATE UNIQUE INDEX "backup_shares_account_sequence_key" ON "backup_shares"("account_sequence");
-- CreateIndex
CREATE UNIQUE INDEX "backup_shares_public_key_key" ON "backup_shares"("public_key");
-- CreateIndex
CREATE INDEX "idx_backup_public_key" ON "backup_shares"("public_key");
-- CreateIndex
CREATE INDEX "idx_backup_status" ON "backup_shares"("status");
-- CreateIndex
CREATE INDEX "idx_backup_created" ON "backup_shares"("created_at");
-- CreateIndex
CREATE INDEX "idx_log_share" ON "share_access_logs"("share_id");
-- CreateIndex
CREATE INDEX "idx_log_user" ON "share_access_logs"("user_id");
-- CreateIndex
CREATE INDEX "idx_log_action" ON "share_access_logs"("action");
-- CreateIndex
CREATE INDEX "idx_log_created" ON "share_access_logs"("created_at");