14 lines
602 B
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);
|