18 lines
767 B
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);
|