16 lines
650 B
SQL
16 lines
650 B
SQL
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); |