177 lines
12 KiB
MySQL
177 lines
12 KiB
MySQL
|
|
-- 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');
|