Manage user transactions and account balances
Pending Deposits
Total Amount: $0.00
Pending Withdrawals
Total Amount: $0.00
Total Users
Active: 0
Today's Transactions
Volume: $0.00
Your admin panel needs database tables to function. Click below to set them up automatically.
If automatic setup fails, copy and run these SQL commands in your Supabase SQL Editor:
-- Create users table CREATE TABLE IF NOT EXISTS users ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, email TEXT UNIQUE NOT NULL, full_name TEXT, balance DECIMAL(10,2) DEFAULT 0.00, is_active BOOLEAN DEFAULT true, last_login TIMESTAMP WITH TIME ZONE, balance_updated_at TIMESTAMP WITH TIME ZONE, balance_updated_by TEXT, balance_update_reason TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- Create transactions table CREATE TABLE IF NOT EXISTS transactions ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, user_id UUID REFERENCES users(id) ON DELETE CASCADE, amount DECIMAL(10,2) NOT NULL, type TEXT NOT NULL CHECK (type IN ('deposit', 'withdrawal')), status TEXT NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'approved', 'rejected')), description TEXT, payment_method TEXT, approved_at TIMESTAMP WITH TIME ZONE, approved_by TEXT, rejected_at TIMESTAMP WITH TIME ZONE, rejected_by TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- Create balance_updates table CREATE TABLE IF NOT EXISTS balance_updates ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, user_id UUID REFERENCES users(id) ON DELETE CASCADE, old_balance DECIMAL(10,2), new_balance DECIMAL(10,2), reason TEXT, updated_by TEXT, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- Enable RLS ALTER TABLE users ENABLE ROW LEVEL SECURITY; ALTER TABLE transactions ENABLE ROW LEVEL SECURITY; ALTER TABLE balance_updates ENABLE ROW LEVEL SECURITY; -- Create policies to allow anonymous access (for admin panel) CREATE POLICY "Allow anonymous access to users" ON users FOR ALL USING (true); CREATE POLICY "Allow anonymous access to transactions" ON transactions FOR ALL USING (true); CREATE POLICY "Allow anonymous access to balance_updates" ON balance_updates FOR ALL USING (true); -- Create indexes for better performance CREATE INDEX IF NOT EXISTS idx_transactions_user_id ON transactions(user_id); CREATE INDEX IF NOT EXISTS idx_transactions_status ON transactions(status); CREATE INDEX IF NOT EXISTS idx_transactions_type ON transactions(type); CREATE INDEX IF NOT EXISTS idx_transactions_created_at ON transactions(created_at); CREATE INDEX IF NOT EXISTS idx_balance_updates_user_id ON balance_updates(user_id);
Note: These policies allow full anonymous access for the admin panel. In production, you should implement proper authentication and more restrictive policies.