133_affiliate_rebate_freeze.sql 911 B

1234567891011121314151617
  1. -- 1) Add frozen quota column to user_affiliates for rebate freeze period.
  2. ALTER TABLE user_affiliates
  3. ADD COLUMN IF NOT EXISTS aff_frozen_quota DECIMAL(20,8) NOT NULL DEFAULT 0;
  4. COMMENT ON COLUMN user_affiliates.aff_frozen_quota IS 'Rebate quota currently frozen (pending thaw after freeze period)';
  5. -- 2) Add frozen_until column to user_affiliate_ledger for per-entry freeze tracking.
  6. -- NULL = no freeze (or already thawed); non-NULL = frozen until this timestamp.
  7. ALTER TABLE user_affiliate_ledger
  8. ADD COLUMN IF NOT EXISTS frozen_until TIMESTAMPTZ NULL;
  9. COMMENT ON COLUMN user_affiliate_ledger.frozen_until IS 'Rebate frozen until this time; NULL means already thawed or never frozen';
  10. -- 3) Partial index for efficient thaw queries (only rows still frozen).
  11. CREATE INDEX IF NOT EXISTS idx_ual_frozen_thaw
  12. ON user_affiliate_ledger (user_id, frozen_until)
  13. WHERE frozen_until IS NOT NULL;