feat(*): Add improvements to the UX and the data seeding

This commit is contained in:
Josh Creek
2026-01-07 20:13:07 +00:00
parent b9a49686c1
commit 28bb39d558
18 changed files with 1069 additions and 623 deletions
@@ -0,0 +1,40 @@
-- Create games table to store game metadata
CREATE TABLE IF NOT EXISTS games (
id TEXT PRIMARY KEY,
"displayName" TEXT NOT NULL,
region TEXT NOT NULL,
generation INTEGER NOT NULL,
"releaseYear" INTEGER NOT NULL,
"createdAt" TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
"updatedAt" TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
-- Enable RLS
ALTER TABLE games ENABLE ROW LEVEL SECURITY;
-- Allow anyone to read games (public reference data)
CREATE POLICY "Games are publicly readable"
ON games
FOR SELECT
TO public
USING (true);
-- Insert games data from games.csv
INSERT INTO games (id, "displayName", region, generation, "releaseYear") VALUES
('red', 'Red', 'Kanto', 1, 1996),
('blue', 'Blue', 'Kanto', 1, 1996),
('yellow', 'Yellow', 'Kanto', 1, 1998),
('lg--pikachu', 'LG: Pikachu', 'Kanto', 7, 2018),
('lg--eevee', 'LG: Eevee', 'Kanto', 7, 2018),
('gold', 'Gold', 'Johto', 2, 1999),
('silver', 'Silver', 'Johto', 2, 1999),
('crystal', 'Crystal', 'Johto', 2, 2000),
('heartgold', 'HeartGold', 'Johto', 4, 2009),
('soulsilver', 'SoulSilver', 'Johto', 4, 2009),
('legends-arceus', 'Legends: Arceus', 'Hisui', 8, 2022)
ON CONFLICT (id) DO UPDATE SET
"displayName" = EXCLUDED."displayName",
region = EXCLUDED.region,
generation = EXCLUDED.generation,
"releaseYear" = EXCLUDED."releaseYear",
"updatedAt" = NOW();