Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / shell (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
Security Scan / backend-security (push) Canceled after 0s
Security Scan / frontend-security (push) Canceled after 0s
18 lines
911 B
SQL
18 lines
911 B
SQL
-- 1) Add frozen quota column to user_affiliates for rebate freeze period.
|
|
ALTER TABLE user_affiliates
|
|
ADD COLUMN IF NOT EXISTS aff_frozen_quota DECIMAL(20,8) NOT NULL DEFAULT 0;
|
|
|
|
COMMENT ON COLUMN user_affiliates.aff_frozen_quota IS 'Rebate quota currently frozen (pending thaw after freeze period)';
|
|
|
|
-- 2) Add frozen_until column to user_affiliate_ledger for per-entry freeze tracking.
|
|
-- NULL = no freeze (or already thawed); non-NULL = frozen until this timestamp.
|
|
ALTER TABLE user_affiliate_ledger
|
|
ADD COLUMN IF NOT EXISTS frozen_until TIMESTAMPTZ NULL;
|
|
|
|
COMMENT ON COLUMN user_affiliate_ledger.frozen_until IS 'Rebate frozen until this time; NULL means already thawed or never frozen';
|
|
|
|
-- 3) Partial index for efficient thaw queries (only rows still frozen).
|
|
CREATE INDEX IF NOT EXISTS idx_ual_frozen_thaw
|
|
ON user_affiliate_ledger (user_id, frozen_until)
|
|
WHERE frozen_until IS NOT NULL;
|