phase 0.3
This commit is contained in:
commit
4a94bfc4e7
52 changed files with 11653 additions and 0 deletions
177
sql/seed_factions.sql
Normal file
177
sql/seed_factions.sql
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
-- Seed: central ports + NPC faction leaders (one per continent).
|
||||
-- Run ONCE, after migration 004_central_dispatch.sql, against skyrama_clone.
|
||||
-- Idempotent: every statement is guarded by WHERE NOT EXISTS, so re-running is a
|
||||
-- no-op. Order per continent: product -> hub country -> NPC user -> central
|
||||
-- airport -> faction. (Replaces the old Go Client.EnsureStage0World.)
|
||||
|
||||
-- Placeholder product so hub countries have a produce FK to point at.
|
||||
INSERT INTO products (name) SELECT 'Misc Cargo'
|
||||
WHERE NOT EXISTS (SELECT 1 FROM products);
|
||||
|
||||
-- ─── void → Orbital Concord / Cmdr. Vega Solaris ───────────────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'void Hub','void', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='void');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'vega_solaris','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='vega_solaris');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'Orbital Spaceport', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='vega_solaris') u,
|
||||
(SELECT id FROM countries WHERE continent='void' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='vega_solaris'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Orbital Concord','void','Cmdr. Vega Solaris',
|
||||
'Runs the only spaceport beyond the sky and keeps the orbital lanes clear for every flag.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='vega_solaris') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='vega_solaris')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='void');
|
||||
|
||||
-- ─── Africa → Savannah Pact / Amara Okonkwo ────────────────────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'Africa Hub','Africa', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='Africa');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'amara_okonkwo','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='amara_okonkwo');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'Africa Central', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='amara_okonkwo') u,
|
||||
(SELECT id FROM countries WHERE continent='Africa' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='amara_okonkwo'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Savannah Pact','Africa','Amara Okonkwo',
|
||||
'Unites the continent''s scattered bush-strip airfields under a single banner.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='amara_okonkwo') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='amara_okonkwo')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='Africa');
|
||||
|
||||
-- ─── Antarctica → Polar Frontier / Dr. Erik Frost ──────────────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'Antarctica Hub','Antarctica', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='Antarctica');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'erik_frost','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='erik_frost');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'Antarctica Central', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='erik_frost') u,
|
||||
(SELECT id FROM countries WHERE continent='Antarctica' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='erik_frost'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Polar Frontier','Antarctica','Dr. Erik Frost',
|
||||
'Keeps the ice runways open against the harshest weather on Earth.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='erik_frost') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='erik_frost')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='Antarctica');
|
||||
|
||||
-- ─── Asia → Monsoon Alliance / Mei-Lin Zhao ────────────────────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'Asia Hub','Asia', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='Asia');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'meilin_zhao','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='meilin_zhao');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'Asia Central', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='meilin_zhao') u,
|
||||
(SELECT id FROM countries WHERE continent='Asia' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='meilin_zhao'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Monsoon Alliance','Asia','Mei-Lin Zhao',
|
||||
'Commands the busiest and most fiercely contested skies on the planet.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='meilin_zhao') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='meilin_zhao')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='Asia');
|
||||
|
||||
-- ─── Europe → Continental Union / Lars Vandenberg ──────────────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'Europe Hub','Europe', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='Europe');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'lars_vandenberg','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='lars_vandenberg');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'Europe Central', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='lars_vandenberg') u,
|
||||
(SELECT id FROM countries WHERE continent='Europe' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='lars_vandenberg'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Continental Union','Europe','Lars Vandenberg',
|
||||
'Old-money hub baron who controls the western air corridors.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='lars_vandenberg') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='lars_vandenberg')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='Europe');
|
||||
|
||||
-- ─── North America → Liberty Air Coalition / Jack Sullivan ─────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'North America Hub','North America', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='North America');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'jack_sullivan','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='jack_sullivan');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'North America Central', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='jack_sullivan') u,
|
||||
(SELECT id FROM countries WHERE continent='North America' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='jack_sullivan'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Liberty Air Coalition','North America','Jack Sullivan',
|
||||
'Brash operator of the great transcontinental gateways.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='jack_sullivan') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='jack_sullivan')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='North America');
|
||||
|
||||
-- ─── Oceania → Coral Compass / Talia Reef ──────────────────────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'Oceania Hub','Oceania', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='Oceania');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'talia_reef','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='talia_reef');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'Oceania Central', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='talia_reef') u,
|
||||
(SELECT id FROM countries WHERE continent='Oceania' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='talia_reef'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Coral Compass','Oceania','Talia Reef',
|
||||
'Island-hopping seaplane magnate of the southern seas.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='talia_reef') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='talia_reef')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='Oceania');
|
||||
|
||||
-- ─── South America → Andean Wings / Mateo Rivera ───────────────────────────────
|
||||
INSERT INTO countries (name,continent,produce_1_id,produce_2_id,produce_3_id)
|
||||
SELECT 'South America Hub','South America', p.id, p.id, p.id
|
||||
FROM (SELECT id FROM products ORDER BY id LIMIT 1) p
|
||||
WHERE NOT EXISTS (SELECT 1 FROM countries WHERE continent='South America');
|
||||
INSERT INTO users (username,password_hash,is_npc)
|
||||
SELECT 'mateo_rivera','',TRUE
|
||||
WHERE NOT EXISTS (SELECT 1 FROM users WHERE username='mateo_rivera');
|
||||
INSERT INTO airports (name,user_id,origin_country_id,is_central)
|
||||
SELECT 'South America Central', u.id, c.id, TRUE
|
||||
FROM (SELECT id FROM users WHERE username='mateo_rivera') u,
|
||||
(SELECT id FROM countries WHERE continent='South America' ORDER BY id LIMIT 1) c
|
||||
WHERE NOT EXISTS (SELECT 1 FROM airports WHERE user_id=(SELECT id FROM users WHERE username='mateo_rivera'));
|
||||
INSERT INTO factions (name,continent,leader_name,background,user_id,central_airport_id)
|
||||
SELECT 'Andean Wings','South America','Mateo Rivera',
|
||||
'Flies the high mountain passes that nobody else dares.',
|
||||
u.id, a.id
|
||||
FROM (SELECT id FROM users WHERE username='mateo_rivera') u,
|
||||
(SELECT id FROM airports WHERE user_id=(SELECT id FROM users WHERE username='mateo_rivera')) a
|
||||
WHERE NOT EXISTS (SELECT 1 FROM factions WHERE continent='South America');
|
||||
Loading…
Add table
Add a link
Reference in a new issue