import { sql } from "drizzle-orm";
import { db } from "./db.server";

export async function insertData() {
  // insets default featured adventures
  console.log("Inserting default featured adventures...");
  await db.execute(sql`INSERT INTO "adventures" (name, location, type) VALUES
     ('Yellowstone National Park', 'Wyoming, Montana, Idaho, USA', 'featured'),
     ('Yosemite National Park', 'California, USA', 'featured'),
     ('Banff National Park', 'Alberta, Canada', 'featured'),
     ('Kruger National Park', 'Limpopo, South Africa', 'featured'),
     ('Grand Canyon National Park', 'Arizona, USA', 'featured'),
     ('Great Smoky Mountains National Park', 'North Carolina, Tennessee, USA', 'featured'),
     ('Zion National Park', 'Utah, USA', 'featured'),
     ('Glacier National Park', 'Montana, USA', 'featured'),
     ('Rocky Mountain National Park', 'Colorado, USA', 'featured'),
     ('Everglades National Park', 'Florida, USA', 'featured'),
     ('Arches National Park', 'Utah, USA', 'featured'),
     ('Acadia National Park', 'Maine, USA', 'featured'),
     ('Sequoia National Park', 'California, USA', 'featured');`);

  console.log("Inserting countries...");
  await db.execute(sql`INSERT INTO "worldTravelCountries" (name, country_code, continent)
  VALUES
    ('United States', 'us', 'North America'),
    ('Canada', 'ca', 'North America'),
    ('Mexico', 'mx', 'North America'),
    ('Brazil', 'br', 'South America'),
    ('Argentina', 'ar', 'South America'),
    ('United Kingdom', 'gb', 'Europe'),
    ('Germany', 'de', 'Europe'),
    ('France', 'fr', 'Europe'),
    ('Japan', 'jp', 'Asia'),
    ('China', 'cn', 'Asia'),
    ('India', 'in', 'Asia'),
    ('Australia', 'au', 'Oceania'),
    ('New Zealand', 'nz', 'Oceania'),
    ('South Africa', 'za', 'Africa'),
    ('Egypt', 'eg', 'Africa'),
    ('Sweden', 'se', 'Europe'),
    ('Ireland', 'ie', 'Europe'),
    ('Spain', 'es', 'Europe'),
    ('Switzerland', 'ch', 'Europe'),
    ('Italy', 'it', 'Europe')
  ON CONFLICT (country_code) DO NOTHING;`);

  console.log("Inserting regions...");
  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code) VALUES
  ('US-AL', 'Alabama', 'us'),
  ('US-AK', 'Alaska', 'us'),
  ('US-AZ', 'Arizona', 'us'),
  ('US-AR', 'Arkansas', 'us'),
  ('US-CA', 'California', 'us'),
  ('US-CO', 'Colorado', 'us'),
  ('US-CT', 'Connecticut', 'us'),
  ('US-DE', 'Delaware', 'us'),
  ('US-FL', 'Florida', 'us'),
  ('US-GA', 'Georgia', 'us'),
  ('US-HI', 'Hawaii', 'us'),
  ('US-ID', 'Idaho', 'us'),
  ('US-IL', 'Illinois', 'us'),
  ('US-IN', 'Indiana', 'us'),
  ('US-IA', 'Iowa', 'us'),
  ('US-KS', 'Kansas', 'us'),
  ('US-KY', 'Kentucky', 'us'),
  ('US-LA', 'Louisiana', 'us'),
  ('US-ME', 'Maine', 'us'),
  ('US-MD', 'Maryland', 'us'),
  ('US-MA', 'Massachusetts', 'us'),
  ('US-MI', 'Michigan', 'us'),
  ('US-MN', 'Minnesota', 'us'),
  ('US-MS', 'Mississippi', 'us'),
  ('US-MO', 'Missouri', 'us'),
  ('US-MT', 'Montana', 'us'),
  ('US-NE', 'Nebraska', 'us'),
  ('US-NV', 'Nevada', 'us'),
  ('US-NH', 'New Hampshire', 'us'),
  ('US-NJ', 'New Jersey', 'us'),
  ('US-NM', 'New Mexico', 'us'),
  ('US-NY', 'New York', 'us'),
  ('US-NC', 'North Carolina', 'us'),
  ('US-ND', 'North Dakota', 'us'),
  ('US-OH', 'Ohio', 'us'),
  ('US-OK', 'Oklahoma', 'us'),
  ('US-OR', 'Oregon', 'us'),
  ('US-PA', 'Pennsylvania', 'us'),
  ('US-RI', 'Rhode Island', 'us'),
  ('US-SC', 'South Carolina', 'us'),
  ('US-SD', 'South Dakota', 'us'),
  ('US-TN', 'Tennessee', 'us'),
  ('US-TX', 'Texas', 'us'),
  ('US-UT', 'Utah', 'us'),
  ('US-VT', 'Vermont', 'us'),
  ('US-VA', 'Virginia', 'us'),
  ('US-WA', 'Washington', 'us'),
  ('US-WV', 'West Virginia', 'us'),
  ('US-WI', 'Wisconsin', 'us'),
  ('US-WY', 'Wyoming', 'us')
ON CONFLICT (id) DO NOTHING;
`);

  console.log("Inserting Canada regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('CA-AB', 'Alberta', 'ca'),
    ('CA-BC', 'British Columbia', 'ca'),
    ('CA-MB', 'Manitoba', 'ca'),
    ('CA-NB', 'New Brunswick', 'ca'),
    ('CA-NL', 'Newfoundland and Labrador', 'ca'),
    ('CA-NS', 'Nova Scotia', 'ca'),
    ('CA-ON', 'Ontario', 'ca'),
    ('CA-PE', 'Prince Edward Island', 'ca'),
    ('CA-QC', 'Quebec', 'ca'),
    ('CA-SK', 'Saskatchewan', 'ca'),
    ('CA-NT', 'Northwest Territories', 'ca'),
    ('CA-NU', 'Nunavut', 'ca'),
    ('CA-YT', 'Yukon', 'ca')
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inserting Germany regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('DE-BW', 'Baden-Württemberg', 'de'),
    ('DE-BY', 'Bavaria', 'de'),
    ('DE-BE', 'Berlin', 'de'),
    ('DE-BB', 'Brandenburg', 'de'),
    ('DE-HB', 'Bremen', 'de'),
    ('DE-HH', 'Hamburg', 'de'),
    ('DE-HE', 'Hesse', 'de'),
    ('DE-NI', 'Lower Saxony', 'de'),
    ('DE-MV', 'Mecklenburg-Vorpommern', 'de'),
    ('DE-NW', 'North Rhine-Westphalia', 'de'),
    ('DE-RP', 'Rhineland-Palatinate', 'de'),
    ('DE-SL', 'Saarland', 'de'),
    ('DE-SN', 'Saxony', 'de'),
    ('DE-ST', 'Saxony-Anhalt', 'de'),
    ('DE-SH', 'Schleswig-Holstein', 'de'),
    ('DE-TH', 'Thuringia', 'de')
  
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inserting France regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('FR-ARA', 'Auvergne-Rhône-Alpes', 'fr'),
    ('FR-BFC', 'Bourgogne-Franche-Comté', 'fr'),
    ('FR-BRE', 'Brittany', 'fr'),
    ('FR-CVL', 'Centre-Val de Loire', 'fr'),
    ('FR-GES', 'Grand Est', 'fr'),
    ('FR-HDF', 'Hauts-de-France', 'fr'),
    ('FR-IDF', 'Île-de-France', 'fr'),
    ('FR-NOR', 'Normandy', 'fr'),
    ('FR-NAQ', 'Nouvelle-Aquitaine', 'fr'),
    ('FR-OCC', 'Occitanie', 'fr'),
    ('FR-PDL', 'Pays de la Loire', 'fr'),
    ('FR-PAC', 'Provence-Alpes-Côte d''Azur', 'fr'),
    ('FR-COR', 'Corsica', 'fr'),
    ('FR-MQ', 'Martinique', 'fr'),
    ('FR-GF', 'French Guiana', 'fr'),
    ('FR-RÉ', 'Réunion', 'fr'),
    ('FR-YT', 'Mayotte', 'fr'),
    ('FR-GP', 'Guadeloupe', 'fr')
  
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inserting United Kingdom regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('GB-ENG', 'England', 'gb'),
    ('GB-NIR', 'Northern Ireland', 'gb'),
    ('GB-SCT', 'Scotland', 'gb'),
    ('GB-WLS', 'Wales', 'gb')
  
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inserting Argentina regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('AR-C', 'Ciudad Autónoma de Buenos Aires', 'ar'),
    ('AR-B', 'Buenos Aires', 'ar'),
    ('AR-K', 'Catamarca', 'ar'),
    ('AR-H', 'Chaco', 'ar'),
    ('AR-U', 'Chubut', 'ar'),
    ('AR-W', 'Córdoba', 'ar'),
    ('AR-X', 'Corrientes', 'ar'),
    ('AR-E', 'Entre Ríos', 'ar'),
    ('AR-P', 'Formosa', 'ar'),
    ('AR-Y', 'Jujuy', 'ar'),
    ('AR-L', 'La Pampa', 'ar'),
    ('AR-F', 'La Rioja', 'ar'),
    ('AR-M', 'Mendoza', 'ar'),
    ('AR-N', 'Misiones', 'ar'),
    ('AR-Q', 'Neuquén', 'ar'),
    ('AR-R', 'Río Negro', 'ar'),
    ('AR-A', 'Salta', 'ar'),
    ('AR-J', 'San Juan', 'ar'),
    ('AR-D', 'San Luis', 'ar'),
    ('AR-Z', 'Santa Cruz', 'ar'),
    ('AR-S', 'Santa Fe', 'ar'),
    ('AR-G', 'Santiago del Estero', 'ar'),
    ('AR-V', 'Tierra del Fuego', 'ar'),
    ('AR-T', 'Tucumán', 'ar')
  
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inerting Mexico regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('MX-AGU', 'Aguascalientes', 'mx'),
    ('MX-BCN', 'Baja California', 'mx'),
    ('MX-BCS', 'Baja California Sur', 'mx'),
    ('MX-CAM', 'Campeche', 'mx'),
    ('MX-CHP', 'Chiapas', 'mx'),
    ('MX-CHH', 'Chihuahua', 'mx'),
    ('MX-COA', 'Coahuila', 'mx'),
    ('MX-COL', 'Colima', 'mx'),
    ('MX-DUR', 'Durango', 'mx'),
    ('MX-GUA', 'Guanajuato', 'mx'),
    ('MX-GRO', 'Guerrero', 'mx'),
    ('MX-HID', 'Hidalgo', 'mx'),
    ('MX-JAL', 'Jalisco', 'mx'),
    ('MX-MEX', 'State of Mexico', 'mx'),
    ('MX-MIC', 'Michoacán', 'mx'),
    ('MX-MOR', 'Morelos', 'mx'),
    ('MX-NAY', 'Nayarit', 'mx'),
    ('MX-NLE', 'Nuevo León', 'mx'),
    ('MX-OAX', 'Oaxaca', 'mx'),
    ('MX-PUE', 'Puebla', 'mx'),
    ('MX-QUE', 'Querétaro', 'mx'),
    ('MX-ROO', 'Quintana Roo', 'mx'),
    ('MX-SLP', 'San Luis Potosí', 'mx'),
    ('MX-SIN', 'Sinaloa', 'mx'),
    ('MX-SON', 'Sonora', 'mx'),
    ('MX-TAB', 'Tabasco', 'mx'),
    ('MX-TAM', 'Tamaulipas', 'mx'),
    ('MX-TLA', 'Tlaxcala', 'mx'),
    ('MX-VER', 'Veracruz', 'mx'),
    ('MX-YUC', 'Yucatán', 'mx'),
    ('MX-ZAC', 'Zacatecas', 'mx')
  
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inserting Japan regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('JP-01', 'Hokkaido', 'jp'),
    ('JP-02', 'Aomori', 'jp'),
    ('JP-03', 'Iwate', 'jp'),
    ('JP-04', 'Miyagi', 'jp'),
    ('JP-05', 'Akita', 'jp'),
    ('JP-06', 'Yamagata', 'jp'),
    ('JP-07', 'Fukushima', 'jp'),
    ('JP-08', 'Ibaraki', 'jp'),
    ('JP-09', 'Tochigi', 'jp'),
    ('JP-10', 'Gunma', 'jp'),
    ('JP-11', 'Saitama', 'jp'),
    ('JP-12', 'Chiba', 'jp'),
    ('JP-13', 'Tokyo', 'jp'),
    ('JP-14', 'Kanagawa', 'jp'),
    ('JP-15', 'Niigata', 'jp'),
    ('JP-16', 'Toyama', 'jp'),
    ('JP-17', 'Ishikawa', 'jp'),
    ('JP-18', 'Fukui', 'jp'),
    ('JP-19', 'Yamanashi', 'jp'),
    ('JP-20', 'Nagano', 'jp'),
    ('JP-21', 'Gifu', 'jp'),
    ('JP-22', 'Shizuoka', 'jp'),
    ('JP-23', 'Aichi', 'jp'),
    ('JP-24', 'Mie', 'jp'),
    ('JP-25', 'Shiga', 'jp'),
    ('JP-26', 'Kyoto', 'jp'),
    ('JP-27', 'Osaka', 'jp'),
    ('JP-28', 'Hyogo', 'jp'),
    ('JP-29', 'Nara', 'jp'),
    ('JP-30', 'Wakayama', 'jp'),
    ('JP-31', 'Tottori', 'jp'),
    ('JP-32', 'Shimane', 'jp'),
    ('JP-33', 'Okayama', 'jp'),
    ('JP-34', 'Hiroshima', 'jp'),
    ('JP-35', 'Yamaguchi', 'jp'),
    ('JP-36', 'Tokushima', 'jp'),
    ('JP-37', 'Kagawa', 'jp'),
    ('JP-38', 'Ehime', 'jp'),
    ('JP-39', 'Kochi', 'jp'),
    ('JP-40', 'Fukuoka', 'jp'),
    ('JP-41', 'Saga', 'jp'),
    ('JP-42', 'Nagasaki', 'jp'),
    ('JP-43', 'Kumamoto', 'jp'),
    ('JP-44', 'Oita', 'jp'),
    ('JP-45', 'Miyazaki', 'jp'),
    ('JP-46', 'Kagoshima', 'jp'),
    ('JP-47', 'Okinawa', 'jp')
  
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inserting China regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('CN-BJ', 'Beijing', 'cn'),
    ('CN-TJ', 'Tianjin', 'cn'),
    ('CN-HE', 'Hebei', 'cn'),
    ('CN-SX', 'Shanxi', 'cn'),
    ('CN-NM', 'Inner Mongolia', 'cn'),
    ('CN-LN', 'Liaoning', 'cn'),
    ('CN-JL', 'Jilin', 'cn'),
    ('CN-HL', 'Heilongjiang', 'cn'),
    ('CN-SH', 'Shanghai', 'cn'),
    ('CN-JS', 'Jiangsu', 'cn'),
    ('CN-ZJ', 'Zhejiang', 'cn'),
    ('CN-AH', 'Anhui', 'cn'),
    ('CN-FJ', 'Fujian', 'cn'),
    ('CN-JX', 'Jiangxi', 'cn'),
    ('CN-SD', 'Shandong', 'cn'),
    ('CN-HA', 'Henan', 'cn'),
    ('CN-HB', 'Hubei', 'cn'),
    ('CN-HN', 'Hunan', 'cn'),
    ('CN-GD', 'Guangdong', 'cn'),
    ('CN-GX', 'Guangxi', 'cn'),
    ('CN-HI', 'Hainan', 'cn'),
    ('CN-CQ', 'Chongqing', 'cn'),
    ('CN-SC', 'Sichuan', 'cn'),
    ('CN-GZ', 'Guizhou', 'cn'),
    ('CN-YN', 'Yunnan', 'cn'),
    ('CN-XZ', 'Tibet', 'cn'),
    ('CN-SA', 'Shaanxi', 'cn'),
    ('CN-GS', 'Gansu', 'cn'),
    ('CN-QH', 'Qinghai', 'cn'),
    ('CN-NX', 'Ningxia', 'cn'),
    ('CN-XJ', 'Xinjiang', 'cn')
  
  ON CONFLICT (id) DO NOTHING;
  
`);

  console.log("Inserting India regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('IN-AN', 'Andaman and Nicobar Islands', 'in'),
    ('IN-AP', 'Andhra Pradesh', 'in'),
    ('IN-AR', 'Arunachal Pradesh', 'in'),
    ('IN-AS', 'Assam', 'in'),
    ('IN-BR', 'Bihar', 'in'),
    ('IN-CH', 'Chandigarh', 'in'),
    ('IN-CT', 'Chhattisgarh', 'in'),
    ('IN-DN', 'Dadra and Nagar Haveli and Daman and Diu', 'in'),
    ('IN-DD', 'Daman and Diu', 'in'),  -- These IDs are consolidated now, but adding separately for compatibility
    ('IN-DL', 'Delhi', 'in'),
    ('IN-GA', 'Goa', 'in'),
    ('IN-GJ', 'Gujarat', 'in'),
    ('IN-HR', 'Haryana', 'in'),
    ('IN-HP', 'Himachal Pradesh', 'in'),
    ('IN-JH', 'Jharkhand', 'in'),
    ('IN-KA', 'Karnataka', 'in'),
    ('IN-KL', 'Kerala', 'in'),
    ('IN-LD', 'Lakshadweep', 'in'),
    ('IN-MP', 'Madhya Pradesh', 'in'),
    ('IN-MH', 'Maharashtra', 'in'),
    ('IN-MN', 'Manipur', 'in'),
    ('IN-ML', 'Meghalaya', 'in'),
    ('IN-MZ', 'Mizoram', 'in'),
    ('IN-NL', 'Nagaland', 'in'),
    ('IN-OR', 'Odisha', 'in'),
    ('IN-PY', 'Puducherry', 'in'),
    ('IN-PB', 'Punjab', 'in'),
    ('IN-RJ', 'Rajasthan', 'in'),
    ('IN-SK', 'Sikkim', 'in'),
    ('IN-TN', 'Tamil Nadu', 'in'),
    ('IN-TG', 'Telangana', 'in'),
    ('IN-TR', 'Tripura', 'in'),
    ('IN-UP', 'Uttar Pradesh', 'in'),
    ('IN-UT', 'Uttarakhand', 'in'),
    ('IN-WB', 'West Bengal', 'in')
  
  ON CONFLICT (id) DO NOTHING;
  
  
`);

  console.log("Inserting Australia regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
VALUES
  ('AU-NSW', 'New South Wales', 'au'),
  ('AU-VIC', 'Victoria', 'au'),
  ('AU-QLD', 'Queensland', 'au'),
  ('AU-SA', 'South Australia', 'au'),
  ('AU-WA', 'Western Australia', 'au'),
  ('AU-TAS', 'Tasmania', 'au'),
  ('AU-NT', 'Northern Territory', 'au'),
  ('AU-ACT', 'Australian Capital Territory', 'au')

ON CONFLICT (id) DO NOTHING;

  
`);

  console.log("Inserting New Zealand regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('NZ-N', 'Northland', 'nz'),
    ('NZ-AUK', 'Auckland', 'nz'),
    ('NZ-WKO', 'Waikato', 'nz'),
    ('NZ-BOP', 'Bay of Plenty', 'nz'),
    ('NZ-GIS', 'Gisborne', 'nz'),
    ('NZ-HKB', 'Hawke''s Bay', 'nz'),
    ('NZ-TKI', 'Taranaki', 'nz'),
    ('NZ-MWT', 'Manawatū-Whanganui', 'nz'),
    ('NZ-WGN', 'Wellington', 'nz'),
    ('NZ-TAS', 'Tasman', 'nz'),
    ('NZ-NEL', 'Nelson', 'nz'),
    ('NZ-MBH', 'Marlborough', 'nz'),
    ('NZ-WTC', 'West Coast', 'nz'),
    ('NZ-CAN', 'Canterbury', 'nz'),
    ('NZ-OTA', 'Otago', 'nz'),
    ('NZ-STL', 'Southland', 'nz')
  
  ON CONFLICT (id) DO NOTHING;
  
  
`);

  console.log("Inserting South Africa regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('ZA-EC', 'Eastern Cape', 'za'),
    ('ZA-FS', 'Free State', 'za'),
    ('ZA-GP', 'Gauteng', 'za'),
    ('ZA-KZN', 'KwaZulu-Natal', 'za'),
    ('ZA-LP', 'Limpopo', 'za'),
    ('ZA-MP', 'Mpumalanga', 'za'),
    ('ZA-NW', 'North West', 'za'),
    ('ZA-NC', 'Northern Cape', 'za'),
    ('ZA-WC', 'Western Cape', 'za')
  
  ON CONFLICT (id) DO NOTHING;
  
  
`);

  console.log("Inserting Egypt regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('EG-ALX', 'Alexandria', 'eg'),
    ('EG-ASN', 'Aswan', 'eg'),
    ('EG-ASY', 'Asyut', 'eg'),
    ('EG-BHR', 'Beheira', 'eg'),
    ('EG-BNS', 'Beni Suef', 'eg'),
    ('EG-C', 'Cairo', 'eg'),
    ('EG-DK', 'Dakahlia', 'eg'),
    ('EG-DAM', 'Damietta', 'eg'),
    ('EG-FYM', 'Faiyum', 'eg'),
    ('EG-GH', 'Gharbia', 'eg'),
    ('EG-GZ', 'Giza', 'eg'),
    ('EG-IS', 'Ismailia', 'eg'),
    ('EG-KB', 'Kafr El Sheikh', 'eg'),
    ('EG-LX', 'Luxor', 'eg'),
    ('EG-MN', 'Minya', 'eg'),
    ('EG-MT', 'Matrouh', 'eg'),
    ('EG-QH', 'Qalyubia', 'eg'),
    ('EG-KFS', 'Qena', 'eg'),
    ('EG-SHG', 'Sohag', 'eg'),
    ('EG-SHR', 'Sharqia', 'eg'),
    ('EG-SIN', 'South Sinai', 'eg'),
    ('EG-SW', 'Suez', 'eg'),
    ('EG-WAD', 'New Valley', 'eg'),
    ('EG-ASD', 'North Sinai', 'eg'),
    ('EG-PTS', 'Port Said', 'eg'),
    ('EG-SKB', 'Suez', 'eg'),
    ('EG-ESI', 'Ismailia', 'eg')
  
  ON CONFLICT (id) DO NOTHING;
`);

  console.log("Inserting Brazil regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
VALUES
  ('BR-AC', 'Acre', 'br'),
  ('BR-AL', 'Alagoas', 'br'),
  ('BR-AP', 'Amapá', 'br'),
  ('BR-AM', 'Amazonas', 'br'),
  ('BR-BA', 'Bahia', 'br'),
  ('BR-CE', 'Ceará', 'br'),
  ('BR-DF', 'Federal District', 'br'),
  ('BR-ES', 'Espírito Santo', 'br'),
  ('BR-GO', 'Goiás', 'br'),
  ('BR-MA', 'Maranhão', 'br'),
  ('BR-MT', 'Mato Grosso', 'br'),
  ('BR-MS', 'Mato Grosso do Sul', 'br'),
  ('BR-MG', 'Minas Gerais', 'br'),
  ('BR-PA', 'Pará', 'br'),
  ('BR-PB', 'Paraíba', 'br'),
  ('BR-PR', 'Paraná', 'br'),
  ('BR-PE', 'Pernambuco', 'br'),
  ('BR-PI', 'Piauí', 'br'),
  ('BR-RJ', 'Rio de Janeiro', 'br'),
  ('BR-RN', 'Rio Grande do Norte', 'br'),
  ('BR-RS', 'Rio Grande do Sul', 'br'),
  ('BR-RO', 'Rondônia', 'br'),
  ('BR-RR', 'Roraima', 'br'),
  ('BR-SC', 'Santa Catarina', 'br'),
  ('BR-SP', 'São Paulo', 'br'),
  ('BR-SE', 'Sergipe', 'br'),
  ('BR-TO', 'Tocantins', 'br')
ON CONFLICT (id) DO NOTHING;
`);

  console.log("Inserting Sweden regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('SE-AB', 'Stockholm', 'se'),
    ('SE-AC', 'Västerbotten', 'se'),
    ('SE-BD', 'Norrbotten', 'se'),
    ('SE-C', 'Uppsala', 'se'),
    ('SE-D', 'Södermanland', 'se'),
    ('SE-E', 'Östergötland', 'se'),
    ('SE-F', 'Jönköping', 'se'),
    ('SE-G', 'Kronoberg', 'se'),
    ('SE-H', 'Kalmar', 'se'),
    ('SE-I', 'Gotland', 'se'),
    ('SE-K', 'Blekinge', 'se'),
    ('SE-M', 'Skåne', 'se'),
    ('SE-N', 'Halland', 'se'),
    ('SE-O', 'Västra Götaland', 'se'),
    ('SE-S', 'Värmland', 'se'),
    ('SE-T', 'Örebro', 'se'),
    ('SE-U', 'Västmanland', 'se'),
    ('SE-W', 'Dalarna', 'se'),
    ('SE-X', 'Gävleborg', 'se'),
    ('SE-Y', 'Västernorrland', 'se'),
    ('SE-Z', 'Jämtland', 'se')
  ON CONFLICT (id) DO NOTHING;
`);

  console.log("Inserting Ireland regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('IE-C', 'Connacht', 'ie'),
    ('IE-L', 'Leinster', 'ie'),
    ('IE-M', 'Munster', 'ie'),
    ('IE-U', 'Ulster', 'ie')
  ON CONFLICT (id) DO NOTHING;
`);

  console.log("Inserting Spain regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('ES-AN', 'Andalucía', 'es'),
    ('ES-AR', 'Aragón', 'es'),
    ('ES-AS', 'Asturias', 'es'),
    ('ES-CB', 'Cantabria', 'es'),
    ('ES-CL', 'Castilla y León', 'es'),
    ('ES-CM', 'Castilla-La Mancha', 'es'),
    ('ES-CN', 'Canarias', 'es'),
    ('ES-CT', 'Cataluña', 'es'),
    ('ES-EX', 'Extremadura', 'es'),
    ('ES-GA', 'Galicia', 'es'),
    ('ES-IB', 'Islas Baleares', 'es'),
    ('ES-MD', 'Madrid', 'es'),
    ('ES-MC', 'Murcia', 'es'),
    ('ES-NC', 'Navarra', 'es'),
    ('ES-PV', 'País Vasco', 'es'),
    ('ES-RI', 'La Rioja', 'es'),
    ('ES-VC', 'Comunidad Valenciana', 'es')
  ON CONFLICT (id) DO NOTHING;
`);

  console.log("Inserting Switzerland regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('CH-AG', 'Aargau', 'ch'),
    ('CH-AR', 'Appenzell Ausserrhoden', 'ch'),
    ('CH-AI', 'Appenzell Innerrhoden', 'ch'),
    ('CH-BL', 'Basel-Landschaft', 'ch'),
    ('CH-BS', 'Basel-Stadt', 'ch'),
    ('CH-BE', 'Bern', 'ch'),
    ('CH-FR', 'Fribourg', 'ch'),
    ('CH-GE', 'Genève', 'ch'),
    ('CH-GL', 'Glarus', 'ch'),
    ('CH-GR', 'Graubünden', 'ch'),
    ('CH-JU', 'Jura', 'ch'),
    ('CH-LU', 'Luzern', 'ch'),
    ('CH-NE', 'Neuchâtel', 'ch'),
    ('CH-NW', 'Nidwalden', 'ch'),
    ('CH-OW', 'Obwalden', 'ch'),
    ('CH-SH', 'Schaffhausen', 'ch'),
    ('CH-SZ', 'Schwyz', 'ch'),
    ('CH-SO', 'Solothurn', 'ch'),
    ('CH-SG', 'St. Gallen', 'ch'),
    ('CH-TG', 'Thurgau', 'ch'),
    ('CH-TI', 'Ticino', 'ch'),
    ('CH-UR', 'Uri', 'ch'),
    ('CH-VS', 'Valais', 'ch'),
    ('CH-VD', 'Vaud', 'ch'),
    ('CH-ZG', 'Zug', 'ch'),
    ('CH-ZH', 'Zürich', 'ch')
  ON CONFLICT (id) DO NOTHING;
`);

  console.log("Inserting Italy regions...");

  await db.execute(sql`INSERT INTO "worldTravelCountryRegions" (id, name, country_code)
  VALUES
    ('IT-65', 'Abruzzo', 'it'),
    ('IT-77', 'Basilicata', 'it'),
    ('IT-78', 'Calabria', 'it'),
    ('IT-72', 'Campania', 'it'),
    ('IT-45', 'Emilia-Romagna', 'it'),
    ('IT-36', 'Friuli Venezia Giulia', 'it'),
    ('IT-62', 'Lazio', 'it'),
    ('IT-42', 'Liguria', 'it'),
    ('IT-25', 'Lombardia', 'it'),
    ('IT-57', 'Marche', 'it'),
    ('IT-67', 'Molise', 'it'),
    ('IT-21', 'Piemonte', 'it'),
    ('IT-75', 'Puglia', 'it'),
    ('IT-88', 'Sardegna', 'it'),
    ('IT-82', 'Sicilia', 'it'),
    ('IT-52', 'Toscana', 'it'),
    ('IT-32', 'Trentino-Alto Adige', 'it'),
    ('IT-55', 'Umbria', 'it'),
    ('IT-23', 'Valle d''Aosta', 'it'),
    ('IT-34', 'Veneto', 'it')
  ON CONFLICT (id) DO NOTHING;
`);
}
