mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-11 00:14:00 +00:00
feat: add durable matchmaking metadata schema
This commit is contained in:
@@ -19,6 +19,15 @@ CREATE TABLE sessions (
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE idempotency_keys (
|
||||
scope TEXT NOT NULL,
|
||||
idempotency_key TEXT NOT NULL CHECK (char_length(idempotency_key) BETWEEN 16 AND 128),
|
||||
payload_digest BYTEA NOT NULL,
|
||||
result JSONB NOT NULL,
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||||
PRIMARY KEY (scope, idempotency_key)
|
||||
);
|
||||
|
||||
CREATE TABLE queue_tickets (
|
||||
ticket_id TEXT PRIMARY KEY,
|
||||
player_id TEXT NOT NULL REFERENCES identities(player_id),
|
||||
@@ -95,6 +104,25 @@ CREATE TABLE ratings (
|
||||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE seasons (
|
||||
season_id TEXT PRIMARY KEY,
|
||||
playlist TEXT NOT NULL CHECK (playlist = 'ranked'),
|
||||
starts_at TIMESTAMPTZ NOT NULL,
|
||||
ends_at TIMESTAMPTZ NOT NULL CHECK (ends_at > starts_at),
|
||||
rolled_over_at TIMESTAMPTZ
|
||||
);
|
||||
|
||||
CREATE TABLE penalties (
|
||||
penalty_id TEXT PRIMARY KEY,
|
||||
player_id TEXT NOT NULL REFERENCES identities(player_id),
|
||||
match_id TEXT REFERENCES matches(match_id),
|
||||
playlist TEXT NOT NULL CHECK (playlist IN ('casual', 'ranked')),
|
||||
kind TEXT NOT NULL,
|
||||
starts_at TIMESTAMPTZ NOT NULL,
|
||||
ends_at TIMESTAMPTZ NOT NULL CHECK (ends_at > starts_at),
|
||||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE result_receipts (
|
||||
result_id TEXT PRIMARY KEY,
|
||||
match_id TEXT NOT NULL UNIQUE REFERENCES matches(match_id),
|
||||
|
||||
Reference in New Issue
Block a user