Sessions 5-7a: 955 tests, deployment ready
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
-- Migration: 008_supplement_tables.sql
|
||||
-- Supplement intelligence systems: coaching tendencies, player-out history,
|
||||
-- evolution detections, unconventional validations.
|
||||
-- Created: 2026-04-13
|
||||
|
||||
-- ============================================================
|
||||
-- Coaching Tendencies
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS coaching_tendencies (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
coach_id TEXT NOT NULL,
|
||||
team_id TEXT NOT NULL,
|
||||
sport TEXT NOT NULL,
|
||||
season TEXT NOT NULL,
|
||||
tendencies JSONB NOT NULL,
|
||||
games_sampled INTEGER DEFAULT 0,
|
||||
last_updated DATE,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||
UNIQUE(coach_id, team_id, sport, season)
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_ct_coach ON coaching_tendencies(coach_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_ct_team ON coaching_tendencies(team_id);
|
||||
|
||||
-- ============================================================
|
||||
-- Player-Out History (redistribution training data)
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS player_out_history (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
player_out_id TEXT NOT NULL,
|
||||
team_id TEXT NOT NULL,
|
||||
game_id TEXT NOT NULL,
|
||||
game_date DATE NOT NULL,
|
||||
beneficiary_stats JSONB NOT NULL,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_poh_player ON player_out_history(player_out_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_poh_team ON player_out_history(team_id);
|
||||
|
||||
-- ============================================================
|
||||
-- Evolution Detections (timestamped accuracy ledger)
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS evolution_detections (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
player_id TEXT NOT NULL,
|
||||
player_name TEXT,
|
||||
sport TEXT NOT NULL,
|
||||
detection_date DATE NOT NULL,
|
||||
metrics JSONB NOT NULL,
|
||||
market_adjusted_at DATE,
|
||||
confirmed BOOLEAN,
|
||||
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_ed_player ON evolution_detections(player_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_ed_date ON evolution_detections(detection_date);
|
||||
|
||||
-- ============================================================
|
||||
-- Unconventional Factor Validation Log
|
||||
-- ============================================================
|
||||
CREATE TABLE IF NOT EXISTS unconventional_validations (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
factor_name TEXT NOT NULL,
|
||||
validated BOOLEAN NOT NULL,
|
||||
pearson_r DECIMAL,
|
||||
p_value DECIMAL,
|
||||
corrected_alpha DECIMAL,
|
||||
sample_size INTEGER,
|
||||
validated_at TIMESTAMPTZ DEFAULT NOW()
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_uv_factor ON unconventional_validations(factor_name);
|
||||
|
||||
-- ============================================================
|
||||
-- Row Level Security
|
||||
-- ============================================================
|
||||
ALTER TABLE coaching_tendencies ENABLE ROW LEVEL SECURITY;
|
||||
ALTER TABLE player_out_history ENABLE ROW LEVEL SECURITY;
|
||||
ALTER TABLE evolution_detections ENABLE ROW LEVEL SECURITY;
|
||||
ALTER TABLE unconventional_validations ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
CREATE POLICY ct_svc ON coaching_tendencies FOR ALL USING (auth.role() = 'service_role');
|
||||
CREATE POLICY poh_svc ON player_out_history FOR ALL USING (auth.role() = 'service_role');
|
||||
CREATE POLICY ed_svc ON evolution_detections FOR ALL USING (auth.role() = 'service_role');
|
||||
CREATE POLICY uv_svc ON unconventional_validations FOR ALL USING (auth.role() = 'service_role');
|
||||
Reference in New Issue
Block a user