2.0.0-rc2: Achievements Refactored & Admin improved.
This commit is contained in:
@@ -587,6 +587,61 @@ ON dm_player_awards(steam_id_64, period_start DESC);
|
||||
CREATE INDEX IF NOT EXISTS idx_player_awards_period
|
||||
ON dm_player_awards(award_type, period_start DESC);
|
||||
|
||||
-- ============================================================================
|
||||
-- Discovery Mart: Data-driven fun facts, both positive and negative
|
||||
-- ============================================================================
|
||||
CREATE TABLE IF NOT EXISTS dm_discovery_insights (
|
||||
insight_key TEXT PRIMARY KEY,
|
||||
steam_id_64 TEXT,
|
||||
tone TEXT NOT NULL
|
||||
CHECK (tone IN ('positive', 'negative', 'fun')),
|
||||
category TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
description TEXT NOT NULL,
|
||||
metric_label TEXT,
|
||||
metric_value REAL,
|
||||
metric_unit TEXT,
|
||||
match_id TEXT,
|
||||
evidence_json TEXT NOT NULL DEFAULT '{}',
|
||||
display_order INTEGER NOT NULL DEFAULT 0,
|
||||
last_updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_discovery_tone_order
|
||||
ON dm_discovery_insights(tone, display_order, insight_key);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_discovery_player
|
||||
ON dm_discovery_insights(steam_id_64, tone);
|
||||
|
||||
-- ============================================================================
|
||||
-- Medal Mart: Gold/silver/bronze by map and ELO segment
|
||||
-- ============================================================================
|
||||
CREATE TABLE IF NOT EXISTS dm_performance_medals (
|
||||
dimension_type TEXT NOT NULL
|
||||
CHECK (dimension_type IN ('map', 'elo')),
|
||||
dimension_key TEXT NOT NULL,
|
||||
dimension_label TEXT NOT NULL,
|
||||
medal_rank INTEGER NOT NULL CHECK (medal_rank BETWEEN 1 AND 3),
|
||||
medal_tier TEXT NOT NULL
|
||||
CHECK (medal_tier IN ('gold', 'silver', 'bronze')),
|
||||
steam_id_64 TEXT NOT NULL,
|
||||
matches INTEGER NOT NULL,
|
||||
wins INTEGER NOT NULL,
|
||||
win_rate REAL,
|
||||
avg_rating REAL,
|
||||
avg_kd REAL,
|
||||
avg_adr REAL,
|
||||
sample_reliable BOOLEAN NOT NULL DEFAULT 0,
|
||||
last_updated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (dimension_type, dimension_key, medal_rank)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_performance_medals_player
|
||||
ON dm_performance_medals(steam_id_64, dimension_type, medal_rank);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_performance_medals_dimension
|
||||
ON dm_performance_medals(dimension_type, dimension_key, medal_rank);
|
||||
|
||||
-- ============================================================================
|
||||
-- Schema Summary
|
||||
-- ============================================================================
|
||||
@@ -609,4 +664,6 @@ ON dm_player_awards(award_type, period_start DESC);
|
||||
-- dm_player_record_events: Historical record-breaking moments
|
||||
-- dm_team_season_stats: Calendar season team summaries
|
||||
-- dm_player_awards: Daily/weekly/monthly/quarterly/yearly awards
|
||||
-- dm_discovery_insights: Positive, negative and quirky data discoveries
|
||||
-- dm_performance_medals: Map and ELO-segment gold/silver/bronze medals
|
||||
-- ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user