750 lines
26 KiB
SQL
750 lines
26 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "admin_users" (
|
|
"id" TEXT NOT NULL,
|
|
"username" TEXT NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"role" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'ACTIVE',
|
|
"lastLoginAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "admin_users_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "system_configs" (
|
|
"id" TEXT NOT NULL,
|
|
"category" TEXT NOT NULL,
|
|
"key" TEXT NOT NULL,
|
|
"value" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"isPublic" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "system_configs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "system_accounts" (
|
|
"id" TEXT NOT NULL,
|
|
"accountType" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"totalContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "system_accounts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "initialization_records" (
|
|
"id" TEXT NOT NULL,
|
|
"type" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL,
|
|
"config" JSONB NOT NULL,
|
|
"executedBy" TEXT NOT NULL,
|
|
"executedAt" TIMESTAMP(3),
|
|
"errorMessage" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "initialization_records_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "audit_logs" (
|
|
"id" TEXT NOT NULL,
|
|
"adminId" TEXT NOT NULL,
|
|
"action" TEXT NOT NULL,
|
|
"resource" TEXT NOT NULL,
|
|
"resourceId" TEXT,
|
|
"oldValue" JSONB,
|
|
"newValue" JSONB,
|
|
"ipAddress" TEXT,
|
|
"userAgent" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "audit_logs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "daily_reports" (
|
|
"id" TEXT NOT NULL,
|
|
"reportDate" DATE NOT NULL,
|
|
"totalUsers" INTEGER NOT NULL DEFAULT 0,
|
|
"newUsers" INTEGER NOT NULL DEFAULT 0,
|
|
"activeUsers" INTEGER NOT NULL DEFAULT 0,
|
|
"totalAdoptions" INTEGER NOT NULL DEFAULT 0,
|
|
"newAdoptions" INTEGER NOT NULL DEFAULT 0,
|
|
"totalTrees" INTEGER NOT NULL DEFAULT 0,
|
|
"totalContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"contributionGrowth" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalDistributed" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalBurned" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"tradingVolume" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"tradingAmount" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"tradeCount" INTEGER NOT NULL DEFAULT 0,
|
|
"openPrice" DECIMAL(30,18) NOT NULL DEFAULT 1,
|
|
"closePrice" DECIMAL(30,18) NOT NULL DEFAULT 1,
|
|
"highPrice" DECIMAL(30,18) NOT NULL DEFAULT 1,
|
|
"lowPrice" DECIMAL(30,18) NOT NULL DEFAULT 1,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "daily_reports_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_users" (
|
|
"id" TEXT NOT NULL,
|
|
"originalUserId" TEXT NOT NULL,
|
|
"accountSequence" TEXT NOT NULL,
|
|
"phone" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL,
|
|
"kycStatus" TEXT NOT NULL,
|
|
"realName" TEXT,
|
|
"isLegacyUser" BOOLEAN NOT NULL DEFAULT false,
|
|
"createdAt" TIMESTAMP(3) NOT NULL,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_users_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_contribution_accounts" (
|
|
"id" TEXT NOT NULL,
|
|
"accountSequence" TEXT NOT NULL,
|
|
"personalContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"teamLevelContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"teamBonusContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"effectiveContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"hasAdopted" BOOLEAN NOT NULL DEFAULT false,
|
|
"directReferralCount" INTEGER NOT NULL DEFAULT 0,
|
|
"unlockedLevelDepth" INTEGER NOT NULL DEFAULT 0,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_contribution_accounts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_mining_accounts" (
|
|
"id" TEXT NOT NULL,
|
|
"accountSequence" TEXT NOT NULL,
|
|
"totalMined" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"availableBalance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"frozenBalance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_mining_accounts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_trading_accounts" (
|
|
"id" TEXT NOT NULL,
|
|
"accountSequence" TEXT NOT NULL,
|
|
"shareBalance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"cashBalance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"frozenShares" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"frozenCash" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalBought" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalSold" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_trading_accounts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_mining_configs" (
|
|
"id" TEXT NOT NULL,
|
|
"totalShares" DECIMAL(30,8) NOT NULL,
|
|
"distributionPool" DECIMAL(30,8) NOT NULL,
|
|
"remainingDistribution" DECIMAL(30,8) NOT NULL,
|
|
"halvingPeriodYears" INTEGER NOT NULL,
|
|
"currentEra" INTEGER NOT NULL DEFAULT 1,
|
|
"minuteDistribution" DECIMAL(30,8) NOT NULL,
|
|
"isActive" BOOLEAN NOT NULL DEFAULT false,
|
|
"activatedAt" TIMESTAMP(3),
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_mining_configs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_daily_mining_stats" (
|
|
"id" TEXT NOT NULL,
|
|
"statDate" DATE NOT NULL,
|
|
"totalContribution" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalDistributed" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalBurned" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"participantCount" INTEGER NOT NULL DEFAULT 0,
|
|
"avgContributionRate" DECIMAL(30,18) NOT NULL DEFAULT 0,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_daily_mining_stats_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_day_klines" (
|
|
"id" TEXT NOT NULL,
|
|
"klineDate" DATE NOT NULL,
|
|
"open" DECIMAL(30,18) NOT NULL,
|
|
"high" DECIMAL(30,18) NOT NULL,
|
|
"low" DECIMAL(30,18) NOT NULL,
|
|
"close" DECIMAL(30,18) NOT NULL,
|
|
"volume" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"amount" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"tradeCount" INTEGER NOT NULL DEFAULT 0,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_day_klines_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_circulation_pools" (
|
|
"id" TEXT NOT NULL,
|
|
"totalShares" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"totalCash" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_circulation_pools_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_system_contributions" (
|
|
"id" TEXT NOT NULL,
|
|
"accountType" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"contributionBalance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"contributionNeverExpires" BOOLEAN NOT NULL DEFAULT false,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_system_contributions_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "cdc_sync_progress" (
|
|
"id" TEXT NOT NULL,
|
|
"sourceTopic" TEXT NOT NULL,
|
|
"sourceService" TEXT NOT NULL,
|
|
"lastOffset" TEXT,
|
|
"lastSequenceNum" BIGINT NOT NULL DEFAULT 0,
|
|
"lastSyncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"errorCount" INTEGER NOT NULL DEFAULT 0,
|
|
"lastError" TEXT,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "cdc_sync_progress_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "processed_events" (
|
|
"id" TEXT NOT NULL,
|
|
"eventId" TEXT NOT NULL,
|
|
"eventType" TEXT NOT NULL,
|
|
"sourceService" TEXT NOT NULL,
|
|
"processedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "processed_events_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_provinces" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'ACTIVE',
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_provinces_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_cities" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"province_id" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'ACTIVE',
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_cities_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_user_region_mappings" (
|
|
"id" TEXT NOT NULL,
|
|
"account_sequence" TEXT NOT NULL,
|
|
"city_id" TEXT NOT NULL,
|
|
"assigned_at" TIMESTAMP(3) NOT NULL,
|
|
"assigned_by" TEXT,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_user_region_mappings_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_wallet_system_accounts" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"account_type" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"code" TEXT NOT NULL,
|
|
"province_id" TEXT,
|
|
"city_id" TEXT,
|
|
"share_balance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"usdt_balance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"green_point_balance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"frozen_share" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"frozen_usdt" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"total_inflow" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"total_outflow" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"blockchain_address" TEXT,
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_wallet_system_accounts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_wallet_pool_accounts" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"pool_type" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"balance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"total_inflow" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"total_outflow" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"target_burn" DECIMAL(30,8),
|
|
"remaining_burn" DECIMAL(30,8),
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_wallet_pool_accounts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_user_wallets" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"account_sequence" TEXT NOT NULL,
|
|
"wallet_type" TEXT NOT NULL,
|
|
"balance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"frozen_balance" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"total_inflow" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"total_outflow" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_user_wallets_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_withdraw_requests" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"request_no" TEXT NOT NULL,
|
|
"account_sequence" TEXT NOT NULL,
|
|
"asset_type" TEXT NOT NULL,
|
|
"amount" DECIMAL(30,8) NOT NULL,
|
|
"fee" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"net_amount" DECIMAL(30,8) NOT NULL,
|
|
"to_address" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL,
|
|
"tx_hash" TEXT,
|
|
"block_number" BIGINT,
|
|
"confirmations" INTEGER NOT NULL DEFAULT 0,
|
|
"error_message" TEXT,
|
|
"approved_by" TEXT,
|
|
"approved_at" TIMESTAMP(3),
|
|
"created_at" TIMESTAMP(3) NOT NULL,
|
|
"completed_at" TIMESTAMP(3),
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_withdraw_requests_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_deposit_records" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"tx_hash" TEXT NOT NULL,
|
|
"from_address" TEXT NOT NULL,
|
|
"to_address" TEXT NOT NULL,
|
|
"asset_type" TEXT NOT NULL,
|
|
"amount" DECIMAL(30,8) NOT NULL,
|
|
"block_number" BIGINT NOT NULL,
|
|
"confirmations" INTEGER NOT NULL DEFAULT 0,
|
|
"matched_account_seq" TEXT,
|
|
"is_processed" BOOLEAN NOT NULL DEFAULT false,
|
|
"processed_at" TIMESTAMP(3),
|
|
"created_at" TIMESTAMP(3) NOT NULL,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_deposit_records_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_dex_swap_records" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"swap_no" TEXT NOT NULL,
|
|
"account_sequence" TEXT NOT NULL,
|
|
"from_asset" TEXT NOT NULL,
|
|
"to_asset" TEXT NOT NULL,
|
|
"from_amount" DECIMAL(30,8) NOT NULL,
|
|
"to_amount" DECIMAL(30,8) NOT NULL,
|
|
"exchange_rate" DECIMAL(30,18) NOT NULL,
|
|
"slippage" DECIMAL(10,4) NOT NULL DEFAULT 0,
|
|
"fee" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"status" TEXT NOT NULL,
|
|
"tx_hash" TEXT,
|
|
"block_number" BIGINT,
|
|
"error_message" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL,
|
|
"completed_at" TIMESTAMP(3),
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_dex_swap_records_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_blockchain_address_bindings" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"account_sequence" TEXT NOT NULL,
|
|
"kava_address" TEXT NOT NULL,
|
|
"is_verified" BOOLEAN NOT NULL DEFAULT false,
|
|
"verified_at" TIMESTAMP(3),
|
|
"verification_tx_hash" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_blockchain_address_bindings_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_black_hole_contracts" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"contract_address" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"total_burned" DECIMAL(30,8) NOT NULL DEFAULT 0,
|
|
"target_burn" DECIMAL(30,8) NOT NULL,
|
|
"remaining_burn" DECIMAL(30,8) NOT NULL,
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_black_hole_contracts_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_burn_to_black_hole_records" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"black_hole_id" TEXT NOT NULL,
|
|
"amount" DECIMAL(30,8) NOT NULL,
|
|
"source_type" TEXT NOT NULL,
|
|
"source_account_seq" TEXT,
|
|
"source_user_id" TEXT,
|
|
"source_pool_type" TEXT,
|
|
"tx_hash" TEXT,
|
|
"block_number" BIGINT,
|
|
"memo" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "synced_burn_to_black_hole_records_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "synced_fee_configs" (
|
|
"id" TEXT NOT NULL,
|
|
"original_id" TEXT NOT NULL,
|
|
"fee_type" TEXT NOT NULL,
|
|
"fee_rate" DECIMAL(10,6) NOT NULL,
|
|
"min_fee" DECIMAL(30,8) NOT NULL,
|
|
"max_fee" DECIMAL(30,8),
|
|
"headquarters_rate" DECIMAL(10,6) NOT NULL,
|
|
"operation_rate" DECIMAL(10,6) NOT NULL,
|
|
"province_rate" DECIMAL(10,6) NOT NULL,
|
|
"city_rate" DECIMAL(10,6) NOT NULL,
|
|
"is_active" BOOLEAN NOT NULL DEFAULT true,
|
|
"syncedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "synced_fee_configs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "admin_users_username_key" ON "admin_users"("username");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "system_configs_category_key_key" ON "system_configs"("category", "key");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "system_accounts_accountType_key" ON "system_accounts"("accountType");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "audit_logs_adminId_idx" ON "audit_logs"("adminId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "audit_logs_action_idx" ON "audit_logs"("action");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "audit_logs_resource_idx" ON "audit_logs"("resource");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "audit_logs_createdAt_idx" ON "audit_logs"("createdAt" DESC);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "daily_reports_reportDate_key" ON "daily_reports"("reportDate");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_users_originalUserId_key" ON "synced_users"("originalUserId");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_users_accountSequence_key" ON "synced_users"("accountSequence");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_users_phone_idx" ON "synced_users"("phone");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_users_status_idx" ON "synced_users"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_users_kycStatus_idx" ON "synced_users"("kycStatus");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_users_createdAt_idx" ON "synced_users"("createdAt" DESC);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_contribution_accounts_accountSequence_key" ON "synced_contribution_accounts"("accountSequence");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_mining_accounts_accountSequence_key" ON "synced_mining_accounts"("accountSequence");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_trading_accounts_accountSequence_key" ON "synced_trading_accounts"("accountSequence");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_daily_mining_stats_statDate_key" ON "synced_daily_mining_stats"("statDate");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_day_klines_klineDate_key" ON "synced_day_klines"("klineDate");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_system_contributions_accountType_key" ON "synced_system_contributions"("accountType");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "cdc_sync_progress_sourceTopic_key" ON "cdc_sync_progress"("sourceTopic");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "cdc_sync_progress_sourceService_idx" ON "cdc_sync_progress"("sourceService");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "processed_events_eventId_key" ON "processed_events"("eventId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "processed_events_sourceService_idx" ON "processed_events"("sourceService");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "processed_events_processedAt_idx" ON "processed_events"("processedAt");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_provinces_original_id_key" ON "synced_provinces"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_provinces_code_key" ON "synced_provinces"("code");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_provinces_code_idx" ON "synced_provinces"("code");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_cities_original_id_key" ON "synced_cities"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_cities_code_key" ON "synced_cities"("code");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_cities_province_id_idx" ON "synced_cities"("province_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_cities_code_idx" ON "synced_cities"("code");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_user_region_mappings_account_sequence_key" ON "synced_user_region_mappings"("account_sequence");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_user_region_mappings_city_id_idx" ON "synced_user_region_mappings"("city_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_wallet_system_accounts_original_id_key" ON "synced_wallet_system_accounts"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_wallet_system_accounts_code_key" ON "synced_wallet_system_accounts"("code");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_wallet_system_accounts_account_type_idx" ON "synced_wallet_system_accounts"("account_type");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_wallet_system_accounts_province_id_idx" ON "synced_wallet_system_accounts"("province_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_wallet_system_accounts_city_id_idx" ON "synced_wallet_system_accounts"("city_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_wallet_pool_accounts_original_id_key" ON "synced_wallet_pool_accounts"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_wallet_pool_accounts_pool_type_key" ON "synced_wallet_pool_accounts"("pool_type");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_wallet_pool_accounts_pool_type_idx" ON "synced_wallet_pool_accounts"("pool_type");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_user_wallets_original_id_key" ON "synced_user_wallets"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_user_wallets_account_sequence_idx" ON "synced_user_wallets"("account_sequence");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_user_wallets_wallet_type_idx" ON "synced_user_wallets"("wallet_type");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_user_wallets_account_sequence_wallet_type_key" ON "synced_user_wallets"("account_sequence", "wallet_type");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_withdraw_requests_original_id_key" ON "synced_withdraw_requests"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_withdraw_requests_request_no_key" ON "synced_withdraw_requests"("request_no");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_withdraw_requests_account_sequence_idx" ON "synced_withdraw_requests"("account_sequence");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_withdraw_requests_status_idx" ON "synced_withdraw_requests"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_withdraw_requests_tx_hash_idx" ON "synced_withdraw_requests"("tx_hash");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_withdraw_requests_created_at_idx" ON "synced_withdraw_requests"("created_at" DESC);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_deposit_records_original_id_key" ON "synced_deposit_records"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_deposit_records_tx_hash_key" ON "synced_deposit_records"("tx_hash");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_deposit_records_from_address_idx" ON "synced_deposit_records"("from_address");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_deposit_records_to_address_idx" ON "synced_deposit_records"("to_address");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_deposit_records_matched_account_seq_idx" ON "synced_deposit_records"("matched_account_seq");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_deposit_records_is_processed_idx" ON "synced_deposit_records"("is_processed");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_dex_swap_records_original_id_key" ON "synced_dex_swap_records"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_dex_swap_records_swap_no_key" ON "synced_dex_swap_records"("swap_no");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_dex_swap_records_account_sequence_idx" ON "synced_dex_swap_records"("account_sequence");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_dex_swap_records_status_idx" ON "synced_dex_swap_records"("status");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_dex_swap_records_tx_hash_idx" ON "synced_dex_swap_records"("tx_hash");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_blockchain_address_bindings_original_id_key" ON "synced_blockchain_address_bindings"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_blockchain_address_bindings_account_sequence_key" ON "synced_blockchain_address_bindings"("account_sequence");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_blockchain_address_bindings_kava_address_key" ON "synced_blockchain_address_bindings"("kava_address");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_blockchain_address_bindings_kava_address_idx" ON "synced_blockchain_address_bindings"("kava_address");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_black_hole_contracts_original_id_key" ON "synced_black_hole_contracts"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_black_hole_contracts_contract_address_key" ON "synced_black_hole_contracts"("contract_address");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_burn_to_black_hole_records_original_id_key" ON "synced_burn_to_black_hole_records"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_burn_to_black_hole_records_black_hole_id_idx" ON "synced_burn_to_black_hole_records"("black_hole_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_burn_to_black_hole_records_source_account_seq_idx" ON "synced_burn_to_black_hole_records"("source_account_seq");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_burn_to_black_hole_records_tx_hash_idx" ON "synced_burn_to_black_hole_records"("tx_hash");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "synced_burn_to_black_hole_records_created_at_idx" ON "synced_burn_to_black_hole_records"("created_at" DESC);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_fee_configs_original_id_key" ON "synced_fee_configs"("original_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "synced_fee_configs_fee_type_key" ON "synced_fee_configs"("fee_type");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "audit_logs" ADD CONSTRAINT "audit_logs_adminId_fkey" FOREIGN KEY ("adminId") REFERENCES "admin_users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "synced_contribution_accounts" ADD CONSTRAINT "synced_contribution_accounts_accountSequence_fkey" FOREIGN KEY ("accountSequence") REFERENCES "synced_users"("accountSequence") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "synced_mining_accounts" ADD CONSTRAINT "synced_mining_accounts_accountSequence_fkey" FOREIGN KEY ("accountSequence") REFERENCES "synced_users"("accountSequence") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "synced_trading_accounts" ADD CONSTRAINT "synced_trading_accounts_accountSequence_fkey" FOREIGN KEY ("accountSequence") REFERENCES "synced_users"("accountSequence") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "synced_cities" ADD CONSTRAINT "synced_cities_province_id_fkey" FOREIGN KEY ("province_id") REFERENCES "synced_provinces"("original_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "synced_user_region_mappings" ADD CONSTRAINT "synced_user_region_mappings_city_id_fkey" FOREIGN KEY ("city_id") REFERENCES "synced_cities"("original_id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|