gcx/backend/migrations/018_create_settlements.sql

18 lines
767 B
SQL

-- 018: Trade settlements (clearing-service)
CREATE TABLE IF NOT EXISTS settlements (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
trade_id UUID NOT NULL REFERENCES trades(id),
buyer_id UUID NOT NULL REFERENCES users(id),
seller_id UUID NOT NULL REFERENCES users(id),
amount NUMERIC(12,2) NOT NULL,
buyer_fee NUMERIC(12,4) NOT NULL DEFAULT 0,
seller_fee NUMERIC(12,4) NOT NULL DEFAULT 0,
status VARCHAR(20) NOT NULL DEFAULT 'pending' CHECK (status IN ('pending', 'completed', 'failed', 'reversed')),
tx_hash VARCHAR(66),
completed_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_settlements_trade_id ON settlements(trade_id);
CREATE INDEX idx_settlements_status ON settlements(status);