Spaces:
Configuration error
Configuration error
File size: 2,934 Bytes
a94c1a2 f780caf a94c1a2 f780caf a94c1a2 f780caf a94c1a2 f780caf a94c1a2 f780caf a94c1a2 f780caf | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | ```sql
-- Users Table
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
phone VARCHAR(11) UNIQUE NOT NULL,
email VARCHAR(255) UNIQUE,
password_hash VARCHAR(255) NOT NULL,
verified BOOLEAN DEFAULT FALSE,
age_verified BOOLEAN DEFAULT FALSE,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
last_login TIMESTAMP WITH TIME ZONE,
status VARCHAR(20) DEFAULT 'active' CHECK (status IN ('active', 'suspended', 'banned'))
);
-- Wallet Transactions Table
CREATE TABLE wallet_transactions (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
amount DECIMAL(12,2) NOT NULL,
transaction_type VARCHAR(20) NOT NULL CHECK (transaction_type IN ('deposit', 'withdrawal', 'win', 'bet', 'bonus', 'penalty')),
payment_method VARCHAR(20),
status VARCHAR(20) DEFAULT 'pending' CHECK (status IN ('pending', 'completed', 'failed', 'reversed')),
reference_id VARCHAR(255),
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
processed_at TIMESTAMP WITH TIME ZONE,
notes TEXT
);
-- Game History Table
CREATE TABLE game_history (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
game_type VARCHAR(50) NOT NULL,
bet_amount DECIMAL(12,2) NOT NULL,
win_amount DECIMAL(12,2),
outcome VARCHAR(20) CHECK (outcome IN ('win', 'loss', 'draw', 'pending')),
game_details JSONB,
session_id VARCHAR(100),
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
completed_at TIMESTAMP WITH TIME ZONE
);
-- Responsible Gaming Settings Table
CREATE TABLE responsible_gaming_settings (
id SERIAL PRIMARY KEY,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
deposit_limit_daily DECIMAL(12,2) DEFAULT 5000.00,
deposit_limit_weekly DECIMAL(12,2) DEFAULT 20000.00,
deposit_limit_monthly DECIMAL(12,2) DEFAULT 50000.00,
loss_limit_daily DECIMAL(12,2),
loss_limit_weekly DECIMAL(12,2),
session_time_limit_minutes INTEGER DEFAULT 60,
self_exclusion BOOLEAN DEFAULT FALSE,
self_exclusion_start TIMESTAMP WITH TIME ZONE,
self_exclusion_end TIMESTAMP WITH TIME ZONE,
cooling_off_period_days INTEGER,
reality_check_minutes INTEGER DEFAULT 60,
last_updated TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);
-- Indexes for better performance
CREATE INDEX idx_wallet_transactions_user_id ON wallet_transactions(user_id);
CREATE INDEX idx_wallet_transactions_created_at ON wallet_transactions(created_at);
CREATE INDEX idx_game_history_user_id ON game_history(user_id);
CREATE INDEX idx_game_history_created_at ON game_history(created_at);
CREATE UNIQUE INDEX idx_responsible_gaming_user_id ON responsible_gaming_settings(user_id);
```
___METADATA_START___
{"repoId":"azimpolcu/dhaka-dice-dynamo","isNew":false,"userName":"azimpolcu"}
___METADATA_END___ |