| 1234567891011121314151617181920212223242526 |
- BEGIN;
- CREATE TABLE session_results (
- id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
- session_id UUID NOT NULL UNIQUE REFERENCES game_sessions(id) ON DELETE CASCADE,
- result_status TEXT NOT NULL CHECK (result_status IN ('finished', 'failed', 'cancelled')),
- summary_jsonb JSONB NOT NULL DEFAULT '{}'::jsonb,
- final_duration_sec INTEGER,
- final_score INTEGER,
- completed_controls INTEGER,
- total_controls INTEGER,
- distance_meters NUMERIC(10,2),
- average_speed_kmh NUMERIC(8,3),
- max_heart_rate_bpm INTEGER,
- created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
- updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
- );
- CREATE INDEX session_results_result_status_idx ON session_results(result_status);
- CREATE INDEX session_results_created_at_idx ON session_results(created_at DESC);
- CREATE TRIGGER session_results_set_updated_at
- BEFORE UPDATE ON session_results
- FOR EACH ROW EXECUTE FUNCTION set_updated_at();
- COMMIT;
|