first commit
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
-- 托管余额系统
|
||||
-- 允许满足条件的用户自行托管节点并获得收益
|
||||
|
||||
-- 枚举类型
|
||||
CREATE TYPE "HostingBalanceType" AS ENUM ('income', 'unfreeze', 'withdraw');
|
||||
CREATE TYPE "WithdrawalStatus" AS ENUM ('pending', 'approved', 'rejected', 'completed');
|
||||
CREATE TYPE "WithdrawalTarget" AS ENUM ('balance', 'usdt');
|
||||
|
||||
-- 在 users 表添加托管余额字段
|
||||
ALTER TABLE "users" ADD COLUMN "hosting_balance" DECIMAL(10, 2) NOT NULL DEFAULT 0;
|
||||
|
||||
-- 托管余额变动日志表
|
||||
CREATE TABLE "hosting_balance_logs" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"user_id" INTEGER NOT NULL,
|
||||
"type" "HostingBalanceType" NOT NULL,
|
||||
"amount" DECIMAL(10, 2) NOT NULL,
|
||||
"frozen" BOOLEAN NOT NULL DEFAULT true,
|
||||
"unfreeze_at" TIMESTAMP(3),
|
||||
"related_id" INTEGER,
|
||||
"remark" TEXT,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "hosting_balance_logs_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- 托管余额提现记录表
|
||||
CREATE TABLE "hosting_withdrawals" (
|
||||
"id" SERIAL NOT NULL,
|
||||
"user_id" INTEGER NOT NULL,
|
||||
"amount" DECIMAL(10, 2) NOT NULL,
|
||||
"fee_rate" DECIMAL(5, 4) NOT NULL,
|
||||
"fee_amount" DECIMAL(10, 2) NOT NULL,
|
||||
"actual_amount" DECIMAL(10, 2) NOT NULL,
|
||||
"target" "WithdrawalTarget" NOT NULL,
|
||||
"usdt_address" TEXT,
|
||||
"status" "WithdrawalStatus" NOT NULL DEFAULT 'pending',
|
||||
"reject_reason" TEXT,
|
||||
"processed_at" TIMESTAMP(3),
|
||||
"processed_by" INTEGER,
|
||||
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "hosting_withdrawals_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- 索引
|
||||
CREATE INDEX "hosting_balance_logs_user_id_frozen_idx" ON "hosting_balance_logs"("user_id", "frozen");
|
||||
CREATE INDEX "hosting_balance_logs_unfreeze_at_idx" ON "hosting_balance_logs"("unfreeze_at");
|
||||
CREATE INDEX "hosting_withdrawals_user_id_status_idx" ON "hosting_withdrawals"("user_id", "status");
|
||||
|
||||
-- 外键约束
|
||||
ALTER TABLE "hosting_balance_logs" ADD CONSTRAINT "hosting_balance_logs_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
ALTER TABLE "hosting_withdrawals" ADD CONSTRAINT "hosting_withdrawals_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
Reference in New Issue
Block a user