VIP Levels
Defines the VIP tier structure for each brand, including progression thresholds, cashback rates, bonuses, and perks. Each brand has its own set of VIP levels.
Table Comment
VIP levels with cashback configuration. Cashback is calculated as percentage of NGR (GGR - bonus releases)
Relationships
- Belongs to brands via
brand_id - Belongs to
companiesviacompany_id - Referenced by user_vip_status via
current_vip_level_id - Referenced by user_vip_status_log via
previous_level_idandnew_level_id - Referenced by vip_daily_cashback_log via
vip_level_id - Referenced by player_sweepstakes_rewards via
vip_level_id - Referenced by daily_reward_logs via
vip_level_id
Columns
| Column | Type | Nullable | Default | Description |
|---|---|---|---|---|
id | integer | NO | nextval(...) | Primary key (auto-increment) |
brand_id | uuid | NO | FK to brands. VIP levels are brand-specific. | |
company_id | uuid | NO | FK to companies. Parent company. | |
level_name | varchar(50) | NO | Display name (e.g., "Bronze", "Silver", "Gold", "Platinum", "Diamond") | |
level_rank | integer | NO | Numeric rank for ordering (1 = lowest, higher = better) | |
required_wagering | numeric(18) | NO | Legacy wagering amount required (superseded by points_required) | |
points_required | numeric(18) | YES | 0 | VIP points needed to reach this level. Formula: 1 SC wagered = 1 point, 100,000 GC = 1 point |
dollar_value | numeric(18) | YES | 0 | Approximate dollar value of wagering to reach this level (for reference/display) |
description | text | YES | Description of the VIP level benefits and conditions | |
image_url | varchar(500) | YES | URL to the VIP level badge/image | |
icon_url | varchar(500) | YES | URL to the VIP level icon |
Cashback Configuration
| Column | Type | Nullable | Default | Description |
|---|---|---|---|---|
cashback_percentage | numeric(5) | YES | Cashback percentage for this VIP level (0.000 - 100.000). Applied in vip_daily_cashback_log. | |
cashback_max_amount | numeric(18) | YES | Maximum daily cashback amount. Caps the cashback calculation. |
Bonus & Reward Multipliers
| Column | Type | Nullable | Default | Description |
|---|---|---|---|---|
daily_bonus_multiplier | numeric(5) | YES | 1.0 | Multiplier applied to base daily login rewards. 1.0 = 100%, 1.1 = 110%, 1.5 = 150%. |
store_multiplier | numeric(5) | YES | 1.0 | Store purchase multiplier for coin packages. 1.5 = 50% bonus coins on purchase. |
tier_up_gc_reward | numeric(18) | YES | 0 | One-time GC reward granted when a player reaches this VIP level |
Birthday Gifts
| Column | Type | Nullable | Default | Description |
|---|---|---|---|---|
birthday_gc_gift | numeric(18) | YES | 10 | Birthday gift GC amount |
birthday_sc_gift | numeric(18) | YES | 10 | Birthday gift SC amount |
VIP Perks (Boolean Flags)
| Column | Type | Nullable | Default | Description |
|---|---|---|---|---|
monthly_bonus_enabled | boolean | YES | false | Whether monthly bonus is available |
priority_redemption | boolean | YES | false | Whether player gets priority redemption processing |
priority_support | boolean | YES | false | Whether player gets priority customer support |
vip_host | boolean | YES | false | Whether player gets a personal VIP host |
Deprecated Columns
| Column | Type | Default | Status |
|---|---|---|---|
daily_sc_bonus | numeric(18) | 0 | DEPRECATED — Use daily_bonus_multiplier instead |
weekly_gc_bonus | numeric(18) | 0 | DEPRECATED — No longer used |
weekly_sc_bonus | numeric(18) | 0 | DEPRECATED — No longer used |
weekly_bonus_enabled | boolean | false | DEPRECATED — No longer used |
Timestamps
| Column | Type | Nullable | Default | Description |
|---|---|---|---|---|
created_at | timestamp | YES | CURRENT_TIMESTAMP | Record creation timestamp |
updated_at | timestamp | YES | CURRENT_TIMESTAMP | Last update timestamp |
Key Indexes
| Index | Columns | Notes |
|---|---|---|
vip_levels_pkey | id | Primary key |
idx_vip_levels_brand_rank | brand_id, level_rank | Ordered levels per brand |
idx_vip_levels_brand_points | brand_id, points_required DESC | Find level by points threshold |
Business Rules
- Each brand defines its own independent VIP level hierarchy
- VIP points drive level progression: when a player's
vip_pointsin user_vip_status crossespoints_required, they tier up - The
daily_bonus_multiplieris applied to the base rewards from daily_login_rewards:final_reward = base_reward * daily_bonus_multiplier - The
store_multipliergives VIP players bonus coins on coin package purchases tier_up_gc_rewardis a one-time reward, tracked viavip_tier_upentries in player_sweepstakes_rewards- Birthday gifts are claimable once per year, tracked by
last_birthday_gift_claimed_yearin user_vip_status - Cashback is calculated daily — see vip_daily_cashback_log for the full cashback workflow
- VIP perks (
priority_redemption,priority_support,vip_host) are feature flags checked by the application layer