gcx/backend/migrations/002_create_wallets.sql

14 lines
602 B
SQL

-- 002: Wallets table (user-service)
CREATE TABLE IF NOT EXISTS wallets (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL UNIQUE REFERENCES users(id) ON DELETE CASCADE,
balance NUMERIC(15,2) NOT NULL DEFAULT 0 CHECK (balance >= 0),
frozen NUMERIC(15,2) NOT NULL DEFAULT 0 CHECK (frozen >= 0),
currency VARCHAR(10) NOT NULL DEFAULT 'USD',
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT chk_frozen_le_balance CHECK (frozen <= balance)
);
CREATE INDEX idx_wallets_user_id ON wallets(user_id);