From e51450d9f98efeaf614aebf2ff47498f69cc2512 Mon Sep 17 00:00:00 2001 From: hailin Date: Sat, 27 Dec 2025 23:36:42 -0800 Subject: [PATCH] =?UTF-8?q?chore(admin-service):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=BB=B4=E6=8A=A4=E5=92=8C=E5=85=B1=E7=AE=A1?= =?UTF-8?q?=E9=92=B1=E5=8C=85=E7=9A=84=E6=95=B0=E6=8D=AE=E5=BA=93=E8=BF=81?= =?UTF-8?q?=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加缺失的 migration 文件,包含: - system_maintenances 表 (系统维护公告) - WalletSessionStatus 枚举 - co_managed_wallet_sessions 表 (共管钱包会话) - co_managed_wallets 表 (共管钱包记录) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../migration.sql | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 backend/services/admin-service/prisma/migrations/20251227100000_add_system_maintenance_and_co_managed_wallet/migration.sql diff --git a/backend/services/admin-service/prisma/migrations/20251227100000_add_system_maintenance_and_co_managed_wallet/migration.sql b/backend/services/admin-service/prisma/migrations/20251227100000_add_system_maintenance_and_co_managed_wallet/migration.sql new file mode 100644 index 00000000..49f123aa --- /dev/null +++ b/backend/services/admin-service/prisma/migrations/20251227100000_add_system_maintenance_and_co_managed_wallet/migration.sql @@ -0,0 +1,85 @@ +-- ============================================================================= +-- System Maintenance & Co-Managed Wallet Migration +-- 系统维护公告 + 共管钱包系统 +-- ============================================================================= + +-- ----------------------------------------------------------------------------- +-- 1. 系统维护公告表 +-- ----------------------------------------------------------------------------- + +CREATE TABLE "system_maintenances" ( + "id" TEXT NOT NULL, + "title" VARCHAR(100) NOT NULL, + "message" TEXT NOT NULL, + "start_time" TIMESTAMP(3) NOT NULL, + "end_time" TIMESTAMP(3) NOT NULL, + "is_active" BOOLEAN NOT NULL DEFAULT false, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL, + "created_by" TEXT NOT NULL, + "updated_by" TEXT, + + CONSTRAINT "system_maintenances_pkey" PRIMARY KEY ("id") +); + +CREATE INDEX "system_maintenances_is_active_idx" ON "system_maintenances"("is_active"); +CREATE INDEX "system_maintenances_start_time_end_time_idx" ON "system_maintenances"("start_time", "end_time"); + +-- ----------------------------------------------------------------------------- +-- 2. 共管钱包会话状态枚举 +-- ----------------------------------------------------------------------------- + +CREATE TYPE "WalletSessionStatus" AS ENUM ('WAITING', 'READY', 'PROCESSING', 'COMPLETED', 'FAILED', 'CANCELLED'); + +-- ----------------------------------------------------------------------------- +-- 3. 共管钱包会话表 +-- ----------------------------------------------------------------------------- + +CREATE TABLE "co_managed_wallet_sessions" ( + "id" TEXT NOT NULL, + "wallet_name" VARCHAR(100) NOT NULL, + "threshold_t" INTEGER NOT NULL, + "threshold_n" INTEGER NOT NULL, + "invite_code" VARCHAR(20) NOT NULL, + "status" "WalletSessionStatus" NOT NULL DEFAULT 'WAITING', + "participants" TEXT NOT NULL, + "current_round" INTEGER NOT NULL DEFAULT 0, + "total_rounds" INTEGER NOT NULL DEFAULT 3, + "public_key" VARCHAR(200), + "error" TEXT, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updated_at" TIMESTAMP(3) NOT NULL, + "created_by" VARCHAR(100) NOT NULL, + + CONSTRAINT "co_managed_wallet_sessions_pkey" PRIMARY KEY ("id") +); + +CREATE UNIQUE INDEX "co_managed_wallet_sessions_invite_code_key" ON "co_managed_wallet_sessions"("invite_code"); +CREATE INDEX "co_managed_wallet_sessions_invite_code_idx" ON "co_managed_wallet_sessions"("invite_code"); +CREATE INDEX "co_managed_wallet_sessions_status_idx" ON "co_managed_wallet_sessions"("status"); +CREATE INDEX "co_managed_wallet_sessions_created_by_idx" ON "co_managed_wallet_sessions"("created_by"); +CREATE INDEX "co_managed_wallet_sessions_created_at_idx" ON "co_managed_wallet_sessions"("created_at"); + +-- ----------------------------------------------------------------------------- +-- 4. 共管钱包表 +-- ----------------------------------------------------------------------------- + +CREATE TABLE "co_managed_wallets" ( + "id" TEXT NOT NULL, + "session_id" TEXT NOT NULL, + "name" VARCHAR(100) NOT NULL, + "public_key" VARCHAR(200) NOT NULL, + "threshold_t" INTEGER NOT NULL, + "threshold_n" INTEGER NOT NULL, + "participants" TEXT NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "created_by" VARCHAR(100) NOT NULL, + + CONSTRAINT "co_managed_wallets_pkey" PRIMARY KEY ("id") +); + +CREATE UNIQUE INDEX "co_managed_wallets_session_id_key" ON "co_managed_wallets"("session_id"); +CREATE INDEX "co_managed_wallets_session_id_idx" ON "co_managed_wallets"("session_id"); +CREATE INDEX "co_managed_wallets_public_key_idx" ON "co_managed_wallets"("public_key"); +CREATE INDEX "co_managed_wallets_created_by_idx" ON "co_managed_wallets"("created_by"); +CREATE INDEX "co_managed_wallets_created_at_idx" ON "co_managed_wallets"("created_at");