CREATE TABLE dispute_timeline ( id BIGINT PRIMARY KEY, dispute_id BIGINT NOT NULL REFERENCES disputes (id), event_type VARCHAR(30) NOT NULL, actor_id BIGINT, actor_name VARCHAR(100), details JSONB, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), CONSTRAINT chk_event_type CHECK (event_type IN ('created', 'response', 'reviewing', 'resolved', 'appealed')) ); CREATE INDEX idx_timeline_dispute ON dispute_timeline (dispute_id, created_at); CREATE INDEX idx_timeline_dispute_created ON dispute_timeline (dispute_id, created_at); CREATE INDEX idx_timeline_details ON dispute_timeline USING gin(details);