gcx/backend/migrations/021_create_disputes.sql

27 lines
1.1 KiB
SQL

-- 021: Dispute cases (compliance-service)
CREATE TABLE IF NOT EXISTS disputes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
type VARCHAR(30) NOT NULL CHECK (type IN ('buyer_complaint', 'seller_complaint', 'refund_request')),
status VARCHAR(20) NOT NULL DEFAULT 'submitted' CHECK (status IN (
'submitted', 'evidence_collection', 'arbitration', 'resolved', 'escalated'
)),
buyer_id UUID NOT NULL REFERENCES users(id),
seller_id UUID NOT NULL REFERENCES users(id),
order_id UUID REFERENCES orders(id),
coupon_id UUID REFERENCES coupons(id),
description TEXT,
evidence JSONB DEFAULT '[]',
chain_evidence JSONB DEFAULT '[]',
resolution TEXT,
refund_approved BOOLEAN,
sla_deadline TIMESTAMPTZ,
resolved_by UUID REFERENCES users(id),
resolved_at TIMESTAMPTZ,
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX idx_disputes_status ON disputes(status);
CREATE INDEX idx_disputes_buyer_id ON disputes(buyer_id);
CREATE INDEX idx_disputes_seller_id ON disputes(seller_id);