diff --git a/backend/services/mpc-service/prisma/migrations/20250102000000_init/migration.sql b/backend/services/mpc-service/prisma/migrations/20250102000000_init/migration.sql index 92e4b146..4cf1aa36 100644 --- a/backend/services/mpc-service/prisma/migrations/20250102000000_init/migration.sql +++ b/backend/services/mpc-service/prisma/migrations/20250102000000_init/migration.sql @@ -17,35 +17,65 @@ CREATE TABLE "party_shares" ( ); -- CreateTable -CREATE TABLE "signing_sessions" ( +CREATE TABLE "session_states" ( "id" VARCHAR(255) NOT NULL, - "party_id" VARCHAR(255) NOT NULL, "session_id" VARCHAR(255) NOT NULL, - "message_hash" VARCHAR(255) NOT NULL, - "signature" TEXT, - "status" VARCHAR(20) NOT NULL DEFAULT 'pending', + "party_id" VARCHAR(255) NOT NULL, + "party_index" INTEGER NOT NULL, + "session_type" VARCHAR(20) NOT NULL, + "participants" TEXT NOT NULL, + "threshold_n" INTEGER NOT NULL, + "threshold_t" INTEGER NOT NULL, + "status" VARCHAR(20) NOT NULL, + "current_round" INTEGER NOT NULL DEFAULT 0, "error_message" TEXT, - "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, - "updated_at" TIMESTAMP(3) NOT NULL, + "public_key" TEXT, + "message_hash" VARCHAR(66), + "signature" TEXT, + "started_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "completed_at" TIMESTAMP(3), - CONSTRAINT "signing_sessions_pkey" PRIMARY KEY ("id") + CONSTRAINT "session_states_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "share_backups" ( + "id" VARCHAR(255) NOT NULL, + "share_id" VARCHAR(255) NOT NULL, + "backup_data" TEXT NOT NULL, + "backup_type" VARCHAR(20) NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" VARCHAR(255), + + CONSTRAINT "share_backups_pkey" PRIMARY KEY ("id") ); -- CreateIndex -CREATE INDEX "party_shares_party_id_idx" ON "party_shares"("party_id"); +CREATE UNIQUE INDEX "uk_party_session" ON "party_shares"("party_id", "session_id"); -- CreateIndex -CREATE INDEX "party_shares_session_id_idx" ON "party_shares"("session_id"); +CREATE INDEX "idx_ps_party_id" ON "party_shares"("party_id"); -- CreateIndex -CREATE INDEX "party_shares_status_idx" ON "party_shares"("status"); +CREATE INDEX "idx_ps_session_id" ON "party_shares"("session_id"); -- CreateIndex -CREATE INDEX "signing_sessions_party_id_idx" ON "signing_sessions"("party_id"); +CREATE INDEX "idx_ps_status" ON "party_shares"("status"); -- CreateIndex -CREATE INDEX "signing_sessions_session_id_idx" ON "signing_sessions"("session_id"); +CREATE UNIQUE INDEX "uk_session_party" ON "session_states"("session_id", "party_id"); -- CreateIndex -CREATE INDEX "signing_sessions_status_idx" ON "signing_sessions"("status"); +CREATE INDEX "idx_ss_session_id" ON "session_states"("session_id"); + +-- CreateIndex +CREATE INDEX "idx_ss_party_id" ON "session_states"("party_id"); + +-- CreateIndex +CREATE INDEX "idx_ss_status" ON "session_states"("status"); + +-- CreateIndex +CREATE INDEX "idx_share_id" ON "share_backups"("share_id"); + +-- CreateIndex +CREATE INDEX "idx_created_at" ON "share_backups"("created_at");