migration.sql 1.7 KB

12345678910111213141516171819202122232425262728293031323334
  1. -- 邀请奖励:用户邀请码/被邀请关系 + 记录表 + 系统配置
  2. ALTER TABLE "users" ADD COLUMN "referral_code" TEXT;
  3. ALTER TABLE "users" ADD COLUMN "referred_by_id" TEXT;
  4. CREATE UNIQUE INDEX "users_referral_code_key" ON "users"("referral_code");
  5. CREATE TABLE "referral_records" (
  6. "id" TEXT NOT NULL PRIMARY KEY,
  7. "referrer_id" TEXT NOT NULL,
  8. "referee_id" TEXT NOT NULL,
  9. "referee_email" TEXT NOT NULL,
  10. "status" TEXT NOT NULL DEFAULT 'registered',
  11. "register_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  12. "first_paid_at" TIMESTAMP(3),
  13. "first_paid_cents" BIGINT,
  14. "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  15. CONSTRAINT "referral_records_referrer_id_fkey" FOREIGN KEY ("referrer_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE,
  16. CONSTRAINT "referral_records_referee_id_fkey" FOREIGN KEY ("referee_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE
  17. );
  18. CREATE TABLE "referral_rewards" (
  19. "id" TEXT NOT NULL PRIMARY KEY,
  20. "user_id" TEXT NOT NULL,
  21. "record_id" TEXT NOT NULL,
  22. "type" TEXT NOT NULL,
  23. "amount_cents" BIGINT NOT NULL,
  24. "status" TEXT NOT NULL DEFAULT 'credited',
  25. "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
  26. CONSTRAINT "referral_rewards_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE,
  27. CONSTRAINT "referral_rewards_record_id_fkey" FOREIGN KEY ("record_id") REFERENCES "referral_records"("id") ON DELETE RESTRICT ON UPDATE CASCADE
  28. );
  29. CREATE TABLE "system_configs" (
  30. "id" TEXT NOT NULL PRIMARY KEY,
  31. "key" TEXT NOT NULL UNIQUE,
  32. "value" TEXT NOT NULL,
  33. "updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP
  34. );