-- Create Topics Table
CREATE TABLE IF NOT EXISTS topics (
    id SERIAL PRIMARY KEY,
    slug VARCHAR(50) UNIQUE NOT NULL,
    name VARCHAR(100) NOT NULL,
    weight INTEGER DEFAULT 1,
    keywords TEXT,
    group_name VARCHAR(50)
);

-- Create News Topics Relation Table
CREATE TABLE IF NOT EXISTS news_topics (
    noticia_id VARCHAR(32) REFERENCES noticias(id) ON DELETE CASCADE,
    topic_id INTEGER REFERENCES topics(id) ON DELETE CASCADE,
    score INTEGER DEFAULT 0,
    created_at TIMESTAMP DEFAULT NOW(),
    PRIMARY KEY (noticia_id, topic_id)
);

CREATE INDEX IF NOT EXISTS idx_news_topics_score ON news_topics(score DESC);

-- Insert Initial Topics Data
-- Uses ON CONFLICT to update if exists.

INSERT INTO topics (slug, name, weight, keywords) VALUES
('middle_east', 'Oriente Medio', 5, 'israel,estado de israel,tel aviv,jerusalén,al quds,gaza,franja de gaza,rafah,jan yunis,cisjordania,territorios ocupados,palestina,autoridad nacional palestina,anp,ramala,iran,república islámica de iran,teherán,isfahán,qom,iraq,irak,bagdad,basora,kurdistán iraquí,erbil,siria,damasco,aleppo,idlib,raqqa,líbano,beirut,sur del líbano,jordania,ammán,arabia saudí,riad,la meca,medina,emiratos árabes,emiratos árabes unidos,uae,dubái,abudabi,sharjah,qatar,doha,kuwait,bahrein,bahréin,manama,oman,yemen,saná,aden,hamas,hamás,yihad islámica,islamic jihad,hezbolá,hizbulá,hezbollah,hutíes,rebeldes hutíes,houthi,ansar allah,isis,estado islámico,daesh,al qaeda,talibanes,fatah,peshmerga,ypg,fds,milicias chiíes,pmu,pasdarán,guardia revolucionaria iraní,irgc,bombardeo,bombardeos,ataque aéreo,ataque con drones,drones suicidas,misiles,cohetes,misil balístico,misil de crucero,iron dome,cúpula de hierro,interceptores,sirenas antiaéreas,incursión terrestre,operación militar,ofensiva,contraofensiva,combates,enfrentamientos,hostilidades,escalada militar,movilización militar,fuerzas armadas,retirada de tropas,zona desmilitarizada,frontera norte,frontera sur,rehenes,liberación de rehenes,intercambio de prisioneros,secuestro,negociación de rehenes,crisis humanitaria,desplazados,refugiados,campamentos,asedio,bloqueo,corte de suministros,hambruna,escasez de agua,ayuda humanitaria,unrwa,alto el fuego,tregua,mediación egipcia,mediación qatarí,acuerdos de abraham,normalización diplomática,liga árabe,cumbre árabe,cumbre del golfo,negociaciones israelo-palestinas,solución de dos estados,relaciones árabe-israelíes,relaciones palestino-israelíes,países del golfo,monarquías del golfo,injerencia iraní,influencia saudí,diplomacia regional,petróleo,crudo,brent,wti,oleoducto,gasoducto,refinería,infraestructura energética,opep,opec,opep+,producción petrolera,gas natural,catar gas,estrecho de hormuz,mar rojo,golfo pérsico,golfo de aden,suní,chií,chiita,wahabismo,salafismo,conflicto sectario,tensión sectaria,lugares sagrados,peregrinación,ramadán,hajj,terrorismo,atentado,explosión,radicalización,células terroristas,operación antiterrorista,servicios secretos,inteligencia militar,contrainteligencia,oriente medio,medio oriente,mashreq,levant,inestabilidad regional,crisis del golfo,conflicto en oriente medio')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('ukraine_russia', 'Ucrania / Rusia', 5, 'ucrania,estado ucraniano,kyiv,kiev,odesa,lviv,rusia,federación rusa,moscú,san petersburgo,zelensky,zelenski,volodímir zelenski,putin,vladímir putin,kremlin,dimitri peskov,sergei lavrov,donbás,donbas,donetsk,donesk,oblast de donetsk,lugansk,luhansk,oblast de lugansk,crimea,sebastopol,península de crimea,mariúpol,jersón,zaporizhzhia,jarkov,sumy,bahmut,avdiivka,lyman,soledar,invasión,invadir,ataque ruso,agresión rusa,contraofensiva,ofensiva ucraniana,ofensiva rusa,bombardeo,ataques masivos,ataques nocturnos,artillería,ataque con misiles,ataque con drones,drones kamikaze,shahed,geran-2,lanzadores múltiples,misiles hipersónicos,kizhal,iskander,kalibr,sistema antiaéreo,patriot,nasams,s-300,s-400,defensa aérea,interceptores,sirenas antiaéreas,fuerzas armadas ucranianas,fuerzas armadas rusas,wagner,grupo wagner,rosgvardia,militares movilizados,reservistas,mercenarios,voluntarios internacionales,anexión,territorios anexionados,referéndum falso,integración forzada,administración ocupante,rusificación,pasaporte ruso obligatorio,tanques leopard,abrams,challenger,vehículos blindados,bradley,artillería autopropulsada,munición de racimo,munición guiada,misiles tácticos,drones de reconocimiento,guerra electrónica,ciberataque ruso,guerra híbrida,desinformación,propaganda rusa,operaciones encubiertas,hackers prorrusos,ataques informáticos masivos,movilización,movilización parcial,llamamiento a filas,despliegue,reservistas,retirada,bajas,pérdidas militares,deserción,frente oriental,línea de contacto,trincheras,alianza occidental,apoyo militar occidental,otan,nato,unión europea,g7,sanciones,embargo,tope al petróleo ruso,precio del gas,negociaciones de paz,alto el fuego,mediación,acusaciones de crímenes de guerra,crímenes contra la humanidad,refugiados ucranianos,desplazados internos,crisis humanitaria,corte de electricidad,infraestructura destruida,ataques a civiles,bombardeos a infraestructura crítica,corredores humanitarios,evacuaciones masivas,gas ruso,nord stream,nord stream 2,oleoducto,gasoducto,corte de suministro,crisis energética europea,acuerdo de exportación de grano,corredor del mar negro,bloqueo portuario,ataques a puertos ucranianos,osce,onu en ucrania,observadores internacionales,ue apoyo a ucrania,fondo europeo de defensa,escalada nuclear,amenaza nuclear,retórica nuclear,conflicto en ucrania,guerra de ucrania,agresión rusa,resistencia ucraniana,estancamiento militar,frente de batalla,situación en el donbás')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('china', 'China / Asia Oriental', 5, 'china,república popular china,rpc,beijing,pekin,shanghai,guangzhou,shenzhen,hong kong,macau,tíbet,xinjiang,mongolia interior,xi jinping,líder chino,secretario general,partido comunista chino,pcc,comité central,politburó,congreso nacional del pueblo,asamblea nacional popular,primer ministro chino,consejo de estado,taiwán,taipei,estrecho de taiwán,islas kinmen,islas matsu,reunificación,independencia de taiwán,incursiones aéreas,zona de identificación de defensa aérea,adiz,ejercicios militares chinos,bloqueo simulado,flota del pacífico,tensiones sino-taiwanesas,corea del sur,seúl,japón,tokio,mar de china meridional,islas spratly,islas paracel,filipinas,vietnam,disputas territoriales en asia,acuartelamiento indo-pacífico,acuerdos en asia oriental,asean+3,diplomacia china,soft power chino,poder blando,guerra comercial,relaciones sino estadounidenses,relaciones china rusia,alianza estratégica china rusia,cumbre de la unasur china,foros regionales asiáticos,g20,brics,brics+,ruta de la seda,nueva ruta de la seda,belt and road,bri,iniciativa de la franja y la ruta,gdi,global development initiative,gsi,global security initiative,gci,global civilization initiative,hecho en china 2025,made in china 2025,dual circulation,aiib,asian infrastructure investment bank,sco,ocsh,shanghai cooperation organisation,rcep,regional comprehensive economic partnership,asean china,foros del este asiático,apec,cooperación asia-pacífico,semiconductores chinos,industria de chips,litografía china,huawei,zte,bytedance,tiktok,dji,supercomputación china,chips avanzados,restricciones de chips,bloqueo tecnológico eeuu china,ciberespionaje,ataques chinos,apt chino,hackers chinos,piratería estatal,robo tecnológico,ciberataque,gran cortafuegos,gran firewall de china,control de internet,vigilancia digital,ejército chino,pla,ejército de liberación popular,armada china,fuerza aérea china,misiles hipersónicos chinos,modernización militar china,cibercomando chino,marina del epl,guardia costera china,zona de exclusión aérea,maniobras militares,xinjiang,uigur,minorías uigures,reeducación,control social,vigilancia masiva,cámaras de reconocimiento facial,tíbet,libertades civiles en china,economía china,crecimiento chino,exportaciones chinas,industria manufacturera,crisis inmobiliaria china,evergrande,country garden,mercado inmobiliario chino,inversiones chinas,fondos soberanos de china,asia oriental,asia pacífico,indo pacífico,potencia asiática,superpotencia china,expansión china')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('eurasia_russia', 'Eurasia / Influencia Rusa', 4, 'unión euroasiática,eaeu,ueea,eurasian economic union,csto,otsc,collective security treaty organization,comunidad de estados independientes,cei,cis,organización del tratado de seguridad colectiva,parlamento euroasiático,espacio económico euroasiático,asia central,asia central rusa,antiguas repúblicas soviéticas,kazajistán,kazakhstan,astana,almaty,uzbekistán,uzbekistan,tashkent,kirguistán,kirguistan,kirguizistán,bishkek,tayikistán,tayikistan,dusambé,turkmenistán,turkmenistan,ashgabat,armenia,ereván,georgia,tiflis,moldavia,moldova,chisinau,bielorrusia,belarus,minsk,cáucaso sur,cáucaso norte,nagorno karabaj,artsaj,osetia del sur,abjasia,transnistria,donbás euroasiático,frontera ruso-georgiana,bases militares rusas,presencia militar rusa en asia central,fuerzas de paz rusas,operaciones de seguridad regional,ejercicios militares conjuntos,vostok,centr,organización del tratado de amistad y cooperación,cooperación policial euroasiática,centrado en seguridad,unión aduanera,aranceles euroasiáticos,bloque económico euroasiático,intercambio comercial con rusia,dependencia energética de rusia,corredores energéticos,oleoductos euroasiáticos,gasoductos rusos,acuerdos bilaterales con moscú,política económica euroasiática,gazprom,rosneft,transneft,lukoil,gasoducto fuerza de siberia,power of siberia,gasoducto asia central rusia,oleoducto bakú-tiflis-ceyhan,btc pipeline,energía euroasiática,seguridad energética del cáucaso,organización de cooperación de shanghái,sco,ocsh,alianza estratégica china rusia,eje pekín-moscú,rusia en asia central,influencia rusa en el cáucaso,geopolítica euroasiática,integración postsoviética,proyectos euroasiáticos,visitas de estado en asia central,migrantes de asia central en rusia,remesas a asia central,dependencia laboral,crisis fronterizas,rotación laboral regional,eurasia,espacio postsoviético,antiguo bloque soviético,influencia rusa,hegemonía rusa,zona de influencia rusa,vecindario cercano de rusia,near abroad,orden euroasiático,esfera rusa de influencia')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('organismos_globales', 'Organismos Globales', 5, 'onu,naciones unidas,naciones-unidas,asamblea general,consejo de seguridad,secretario general,resolución de la onu,misiones de paz,cascos azules,ecosoc,consejo económico y social,pnuma,programa de naciones unidas para el medio ambiente,pnud,programa de naciones unidas para el desarrollo,onu mujeres,fondo de población de la onu,unfpa,unrwa,agencia de onu para refugiados palestinos,unhabitat,unops,unesco,unido,oms,organización mundial de la salud,ops,organización panamericana de la salud,unicef,fao,acnur,oim,oit,oms,cruz roja internacional,cicr,robos humanitarios internacionales,fmi,fondo monetario internacional,banco mundial,bm,banco internacional de reconstrucción y fomento,bird,asociación internacional de fomento,aif,banco de pagos internacionales,bis,omc,organización mundial del comercio,ocde,organización para la cooperación y el desarrollo económicos,unctad,comercio y desarrollo,foro de davos,wef,foro económico mundial,g7,g20,club de parís,club de londres,corte penal internacional,cpi,tribunal internacional de justicia,tij,corte internacional de justicia,corte permanente de arbitraje,cpa,tribunales de la haya,la haya,oiea,organismo internacional de energía atómica,ctbto,organismo de control de pruebas nucleares,interpol,oficina internacional de policía criminal,onuad,desarme,convención sobre armas químicas,opaq,ipcc,panel intergubernamental del cambio climático,cop,cumbres climáticas,acuerdo de parís,onu clima,pnuma,programa medioambiental de la onu,unesco,organización de naciones unidas para la educación,oms,oms investigación,onu ciencia,oms cooperación global,movimiento de países no alineados,no aligned movement,nam,alianza global,cooperación multilateral,instituciones multilaterales,gobernanza global')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('organismos_occidente', 'Organismos Occidente', 5, 'unión europea,ue,comisión europea,ejecutivo comunitario,parlamento europeo,eurocámara,consejo europeo,consejo de la unión europea,consejo de ministros,tribunal de justicia de la unión europea,tjue,tribunal de cuentas europeo,servicio europeo de acción exterior,seae,alto representante de la ue,alto representante para asuntos exteriores,bce,banco central europeo,eurogrupo,mecanismo europeo de estabilidad,mee,rescate europeo,eurozona,zona euro,banco europeo de inversiones,bei,banco europeo de reconstrucción y desarrollo,berd,europol,oficina europea de policía,eurojust,cooperación judicial europea,frontex,agencia europea de fronteras,olaf,oficina europea de lucha contra el fraude,easa,agencia europea de seguridad aérea,ema,agencia europea del medicamento,enisa,agencia europea de ciberseguridad,eu-osha,agencia europea para la seguridad y salud en el trabajo,consejo de europa,tribunal europeo de derechos humanos,tedh,convención europea de derechos humanos,otan,nato,alianza atlántica,alianza del atlántico norte,mando aliado,ejercicios de la otan,osce,organización para la seguridad y la cooperación en europa,agencia europea de defensa,eda,ocde,organización para la cooperación y el desarrollo económicos,g7,cumbre del g7,g7 ampliado,club de países industrializados,efta,aelc,asociación europea de libre comercio,espacio económico europeo,eee,schengen,acuerdos de schengen,zona schengen,política de vecindad europea,vecindad oriental,pilar europeo de derechos sociales,estado de derecho en la ue,mecanismo del estado de derecho,cumbre eu-usa,relaciones transatlánticas,bloque occidental,alianza occidental,instituciones europeas,burocracia de bruselas,estructura comunitaria,marco institucional europeo')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('organismos_america', 'Organismos América', 4, 'oea,organización de los estados americanos,cidh,comisión interamericana de derechos humanos,corte idh,corte interamericana de derechos humanos,bid,banco interamericano de desarrollo,bcie,banco centroamericano de integración económica,caf,banco de desarrollo de américa latina,cepal,comisión económica para américa latina y el caribe,fonplata,fondo financiero para el desarrollo de la cuenca del plata,mercosur,mercosul,mercosur ampliado,unasur,unión de naciones suramericanas,alianza del pacífico,apec latinoamérica,alap,alba,alba-tcp,alternativa bolivariana para las américas,prosur,foro para el progreso de américa del sur,sica,sistema de la integración centroamericana,parlacen,parlamento centroamericano,caricom,comunidad del caribe,acs,asociación de estados del caribe,sela,sistema económico latinoamericano y caribeño,usmca,tmec,nafta,tratado de libre comercio de américa del norte,cumbre de líderes de américa del norte,alianza para la prosperidad,alianza energética norteamericana,junta interamericana de defensa,consejo de defensa suramericano,seguridad hemisférica,cooperación militar regional,celac,comunidad de estados latinoamericanos y caribeños,cumbre iberoamericana,secretaría general iberoamericana,segib,organismo andino de integración,comunidad andina,can,ops,organización panamericana de la salud,panam sports,odepa,organización deportiva panamericana,oit américas,unesco américa latina,retrofit latinoamérica,infraestructura regional,integración latinoamericana,cooperación regional,foros latinoamericanos,mecanismos regionales,agenda hemisférica,diplomacia regional')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('organismos_china_rusia', 'Org. China/Rusia/BRICS', 5, 'brics,brics+,nuevos brics,expansión de los brics,sco,ocsh,shanghai cooperation organisation,organización de cooperación de shanghái,belt and road,belt & road,bri,iniciativa de la franja y la ruta,ruta de la seda,nueva ruta de la seda,silk road,gdi,global development initiative,gsi,global security initiative,gci,global civilization initiative,made in china 2025,dual circulation strategy,aiib,asian infrastructure investment bank,nuevo banco de desarrollo,new development bank,ndb,banco euroasiático de desarrollo,banco asiático de inversión en infraestructura,csto,otsc,collective security treaty organization,organización del tratado de seguridad colectiva,eaeu,ueea,unión económica euroasiática,eurasian economic union,cei,cis,comunidad de estados independientes,rosatom,gazprom forum,foro energético ruso,foro de boao,boao forum for asia,asean+3,asean plus three,asia cooperation dialogue,acd,cica,conference on interaction and confidence building measures in asia,organización del tratado de amistad y cooperación,otl del caspio,caspian summit,consejo turco,turkic council,organización de estados túrquicos,ejercicios conjuntos china rusia,alianza militar euroasiática,cooperación militar sino-rusa,joint sea naval exercises,vostok ejercicios militares,rcep,regional comprehensive economic partnership,asian cooperation forum,cinturón económico de la ruta de la seda,eurasian land bridge,foro energético del caspio,acuerdos energéticos china rusia,gasoducto fuerza de siberia,power of siberia pipeline,foro petrolero euroasiático,multipolaridad,orden multipolar,alternativa a occidente,bloque euroasiático,cooperación sino-rusa,alianza estratégica china rusia')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('big_tech', 'Big Tech / Gigantes Tecnológicos', 4, 'apple,google,alphabet,tesla,spacex,amazon,meta,facebook,microsoft,netflix,nvidia,intel,amd,samsung,huawei,tiktok,bytedance,oracle,ibm,salesforce,adobe,alibaba,tencent,baidu,uber,airbnb,spotify,tim cook,sundar pichai,elon musk,mark zuckerberg,satya nadella,jeff bezos,jensen huang,reed hastings,jack ma,pony ma,zhang yiming,iphone,ipad,macbook,ios,macos,app store,android,google play,chrome,chromebook,gmail,google cloud,aws,amazon web services,azure,microsoft 365,office 365,teams,windows,xbox,meta quest,oculus,realidad virtual,realidad aumentada,tesla model 3,tesla model y,autopilot,full self driving,fsd,prime video,netflix,hbo max,disney+,tiktok app,instagram,whatsapp,messenger,youtube,youtube premium,plataforma digital,marketplace,ecommerce,comercio electrónico,suscripción,modelo freemium,publicidad digital,anuncios online,economía de plataforma,gig economy,economía colaborativa,cloud,computación en la nube,centros de datos,data center,edge computing,cdn,infraestructura cloud,paas,saas,iaas,kubernetes,docker,microservicios,vehículo eléctrico,coche eléctrico,supercargadores,red de carga,conducción autónoma,software de conducción,baterías,gigafactory,modelo de lenguaje,servicio de ia,ia en la nube,plataformas de inteligencia artificial,api de ia,servicios cognitivos,vision artificial en la nube,fusión,adquisición,m&a,compra de startup,venta de activos,spin-off,scisión empresarial,salida a bolsa,opv,ipo,valoración multimillonaria,unicornio,capital riesgo,posición dominante,monopolio digital,antimonopolio,antitrust,regulación tecnológica,ley de mercados digitales,protección de datos,privacidad,rgpd,gdpr,investigación regulatoria,multa antimonopolio,control de contenidos,moderación de contenidos,big tech,gigantes tecnológicos,empresas tecnológicas,multinacional tecnológica,ecosistema tecnológico,resultados trimestrales,beneficios récord,capitalización bursátil')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('economia_global', 'Economía Global', 4, 'economía,macroeconomía,pib,producto interior bruto,inflación,deflación,estanflación,recesión,desaceleración,crecimiento económico,actividad económica,balanza comercial,déficit,superávit,deuda pública,deuda soberana,estímulo fiscal,austeridad,ajuste estructural,mercados financieros,bolsa,acciones,índice bursátil,ibex,nasdaq,dow jones,sp500,ftse,nikkei,bonos,renta fija,renta variable,divisas,tipos de cambio,volatilidad,inversores,capitalización,crisis financiera,burbuja financiera,corrección del mercado,banca central,banco central,tipos de interés,política monetaria,quantitative easing,qe,subida de tipos,bce,fed,reserva federal,banco de inglaterra,banco de japón,tasa de referencia,inflación subyacente,petróleo,crudo,brent,wti,gas natural,carbón,energía,matérias primas,commodities,minería,cobre,litio,oro,plata,energía renovable,transición energética,opep,opep+,precio del petróleo,producción petrolera,comercio internacional,aranceles,exportaciones,importaciones,barreras comerciales,guerra comercial,organización mundial del comercio,omc,rcep,nafta,usmca,tratado de libre comercio,logística,cadena de suministro,supply chain,puertos,fletes,g7,g20,brics,fmi,fondo monetario internacional,banco mundial,ocde,foro de davos,wef,banco asiático de inversión,aiib,banco interamericano de desarrollo,bid,cepal,mercosur,unión europea económica,inversión,capital riesgo,private equity,fusiones y adquisiciones,m&a,inversión extranjera directa,ied,empresas multinacionales,gigantes empresariales,beneficios,dividendos,resultados trimestrales,balances,rentabilidad,bitcoin,ethereum,criptomonedas,criptoactivos,blockchain,fintech,banca digital,tokenización,defi,criptoexchange,volatilidad cripto,minería de bitcoin,crisis económica,crisis de deuda,crisis bancaria,riesgo país,tensiones económicas,colapso financiero,fuga de capitales,corralito,intervención estatal,desempleo,paro,ocupación,mercado laboral,salarios,negociación colectiva,coste de vida,pobreza,desigualdad,clase media,economía global,sistema financiero,competitividad,inestabilidad económica,política económica')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('desastres_y_crisis', 'Desastres y Crisis', 5, 'terremoto,sismo,seísmo,epicentro,magnitud,réplica,tsunami,maremoto,inundación,riada,lluvias torrenciales,crecida de río,huracán,tormenta tropical,tifón,ciclón,tornado,tormenta eléctrica,erupción volcánica,volcán,lava,ceniza volcánica,deslizamiento de tierra,corrimiento de tierras,alud,avalancha,sequía,ola de calor,ola de frío,incendio forestal,fuego,desastre natural,explosión,fuga tóxica,derrame químico,accidente industrial,planta química,accidente nuclear,reactor nuclear,radiación,fuga nuclear,contaminación,derrame petrolero,marea negra,colapso estructural,derrumbamiento,explosión de gas,accidente minero,atentado,ataque terrorista,terrorismo,bomba,artefacto explosivo,yihadista,estado islámico,isis,al qaeda,coche bomba,suicida,atacante,tiroteo masivo,radicalización,extremismo violento,guerra,conflicto armado,combates,batalla,frente de guerra,ofensiva,contraofensiva,bombardeo,incursión militar,ataque aéreo,ataque con drones,misiles,artillería,fuerzas armadas,tropas,movilización militar,invasión,ocupación,escalada,armamento,armas pesadas,genocidio,limpieza étnica,violaciones de derechos humanos,epidemia,pandemia,brote,virus,infección,covid,ebola,zika,gripe aviar,sars,mers,alerta sanitaria,cuarentena,aislamiento,contagio,colapso sanitario,emergencia de salud pública,crisis humanitaria,refugiados,desplazados,campamentos,hambruna,inseguridad alimentaria,falta de agua,ayuda humanitaria,emergencia humanitaria,crisis migratoria,socorro internacional,organizaciones de socorro,accidente,tragedia,fatalidades,víctimas,heridos,rescate,accidente de tráfico,accidente de carretera,accidente vial,colisión,choque frontal,alcance,salida de vía,autopista,carretera,caravana,atasco,retención,conductor herido,peatón atropellado,atropello,multitudinario,cadena de colisiones,choque múltiple,accidente de autobús,autobús volcado,accidente de camión,camión cisterna,vehículo incendiado,accidente mortal,accidente de avión,accidente aéreo,siniestralidad aérea,accidente ferroviario,descarrilamiento,tren siniestrado,accidente marítimo,naufragio,barco volcado,catástrofe,desastre,emergencia,alerta roja,alerta meteorológica,evacuación,crisis,devastación,pérdidas humanas,operativo de rescate')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('conflictos', 'Conflictos y Seguridad', 5, 'conflicto armado,guerra,guerra civil,combates,batalla,frente,frente de batalla,ofensiva,contraofensiva,incursión,incursión militar,invasión,ocupación,asedio,bombardeo,ataque aéreo,ataque terrestre,ataque con drones,misil,artillería,fuego cruzado,tropas,armamento,armas pesadas,militares,movilización,despliegue militar,zona de conflicto,golpe de estado,intentona golpista,junta militar,derrocamiento,toma del poder,ruptura institucional,estado de excepción,toque de queda,represión estatal,levantamiento,insurrección,motín,disturbios,protestas masivas,rebelión,sublevación,conflicto étnico,violencia sectaria,tensiones étnicas,limpieza étnica,persecución étnica,enfrentamiento tribal,violencia intercomunitaria,minorías perseguidas,atentado,ataque terrorista,terrorismo,extremismo,radicalización,yihadista,estado islámico,isis,al qaeda,talibanes,coche bomba,artefacto explosivo,suicida,milicia,guerrilla,grupo insurgente,insurgencia,paramilitares,señores de la guerra,cártel,mafia,crimen organizado,narcotráfico,tráfico de armas,tráfico de personas,extorsión,sicarios,bandas armadas,ciberataque,ciberataque masivo,hackeo,ataque informático,ataque ransomware,infiltración informática,phishing,ciberespionaje,filtración de datos,inteligencia militar,operación encubierta,guerra híbrida,desinformación,propaganda,sanciones,sanciones económicas,embargo,bloqueo económico,bloqueo comercial,castigo diplomático,retirada de embajadores,secuestro,rapto,toma de rehenes,ejecución,ejecución extrajudicial,asesinato político,magnicidio,intento de asesinato,masacre,tiroteo,fuerza letal,ataque coordinado,cascos azules,misión de paz,intervención militar,zona desmilitarizada,alto el fuego,tregua,acuerdo de paz,escalada,escalada militar,tensión internacional,amenaza,hostilidades,crisis de seguridad,conflicto internacional')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('elecciones_politica', 'Elecciones y Política', 3, 'elecciones,elección presidencial,elección parlamentaria,elecciones generales,elecciones regionales,elecciones locales,urna,votación,voto,recuento,escrutinio,participación electoral,abstención,jornada electoral,segunda vuelta,balotaje,candidato,candidatura,lista electoral,victoria electoral,derrota electoral,coalición electoral,campaña,mitin,debate electoral,debate televisado,programa electoral,promesas electorales,encuesta,sondeo,intención de voto,tracking electoral,eje izquierda-derecha,eslogan político,gira electoral,referéndum,plebiscito,consulta popular,consulta vinculante,autodeterminación,reforma constitucional,cambio de constitución,estatuto,referendo de independencia,fraude electoral,manipulación electoral,irregularidades,compra de votos,clientelismo,intimidación electoral,impugnación de resultados,protestas post-electorales,observadores internacionales,acusaciones de fraude,presidente,primer ministro,jefe de estado,jefe de gobierno,gabinete,ministro,secretario de estado,portavoz,alcalde,gobernador,diputado,senador,legislador,parlamento,asamblea,congreso,senado,cámara baja,cámara alta,comité parlamentario,mayoría absoluta,mayoría simple,oposición,disolución del parlamento,moción de censura,investidura,votación parlamentaria,partido político,coalición,alianza,bloque parlamentario,oposición política,izquierda,derecha,centro,extrema derecha,extrema izquierda,liberal,conservador,socialdemócrata,populismo,crisis política,dimisión,renuncia,interpelación,gobierno interino,vacancia,caída del gobierno,bloqueo institucional,parálisis política,estado de excepción político,política exterior,relaciones diplomáticas,acuerdos bilaterales,visita oficial,reconocimiento internacional,tensiones diplomáticas,embajador,ministerio de exteriores,corrupción,soborno,malversación,tráfico de influencias,escándalo político,investigación judicial,audiencia parlamentaria,comisión de investigación,imputación,procesamiento,manifestación,protesta,movilización,huelga general,huelga política,movimientos ciudadanos,activistas,revolución de colores,presión social,derechos civiles,gobierno,administración,estabilidad política,modelo político,transición política,proceso democrático,instituciones,estado de derecho,crisis institucional')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;

INSERT INTO topics (slug, name, weight, keywords) VALUES
('tecnologia', 'Tecnología', 3, 'inteligencia artificial,ia,algoritmo,machine learning,deep learning,red neuronal,modelo de lenguaje,modelo generativo,llm,transformer,genai,openai,chatgpt,gpt,anthropic,claude,google gemini,llama,metallama,hugging face,inferencias,entrenamiento de modelos,fine tuning,datasets,vectorización,embeddings,visión artificial,nlp,procesamiento de lenguaje natural,chips,semiconductores,nanómetros,oblea,gpu,cpu,asic,intel,amd,nvidia,arm,tsmc,samsung semiconductors,litografía,europa chips act,chiplets,memoria hbm,vrm,arquitectura computacional,supercomputador,hpc,robot,robótica,robot humanoide,automatización,drones,vehículos autónomos,coche autónomo,autopilot,industria 4.0,digital twins,iot,internet de las cosas,sensores inteligentes,domótica,smart home,ciberseguridad,ciberataque,ciberdefensa,phishing,ransomware,malware,spyware,vulnerabilidad,cve,zero-day,hackeo,intrusión,filtración de datos,brecha de seguridad,criptografía,seguridad informática,firewall,5g,6g,fibra óptica,redes móviles,torres de telecomunicaciones,infraestructura de red,satélites,starlink,orbital,ancho de banda,latencia,internet global,operadores de telecomunicaciones,redes privadas,software,aplicación,plataforma digital,startup,ecosistema tech,innovación,transformación digital,saas,paas,iaas,cloud,nube,computación en la nube,servidores,microservicios,contenedores,docker,kubernetes,devops,código abierto,open source,repositorio,api,microchips,firmware,computación cuántica,qubits,enfriamiento criogénico,superposición cuántica,enlace cuántico,computación distribuida,edge computing,fog computing,holografía,realidad aumentada,realidad virtual,metaverso,xr,visión por computador,apple,google,alphabet,tesla,meta,amazon,microsoft,tim cook,sundar pichai,elon musk,mark zuckerberg,silicon valley,gigante tecnológico,unicornios,big data,data mining,análisis predictivo,modelos estadísticos,data science,científico de datos,pipelines de datos,lagos de datos,etl,warehouse,baterías,ion-litio,carga rápida,movilidad eléctrica,supercargadores,vehículo eléctrico,eficiencia energética,tecnologías verdes,energía inteligente,tecnología,sector tecnológico,ecosistema digital,innovación disruptiva,avance tecnológico,desarrollo tecnológico')
ON CONFLICT (slug) DO UPDATE SET name = EXCLUDED.name, weight = EXCLUDED.weight, keywords = EXCLUDED.keywords;
