-- lobbytracker schema
CREATE TABLE politicians (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name VARCHAR(255) NOT NULL,
  position VARCHAR(255),
  jurisdiction VARCHAR(255), -- CABA, Buenos Aires, Nación, etc.
  party VARCHAR(100),
  image_url TEXT,
  total_lobby_ars BIGINT DEFAULT 0,
  total_lobby_usd BIGINT DEFAULT 0,
  status VARCHAR(50) DEFAULT 'red', -- red, green, warning
  qr_url TEXT,
  bio TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW(),
  updated_at TIMESTAMPTZ DEFAULT NOW()
);

CREATE TABLE lobby_groups (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  name VARCHAR(255) NOT NULL,
  acronym VARCHAR(50),
  description TEXT,
  website TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

CREATE TABLE connections (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  politician_id UUID REFERENCES politicians(id) ON DELETE CASCADE,
  lobby_group_id UUID REFERENCES lobby_groups(id) ON DELETE CASCADE,
  connection_type VARCHAR(100), -- 'contrato', 'viaje', 'nombramiento', 'donacion', 'evento', 'financiamiento'
  amount_ars BIGINT,
  amount_usd BIGINT,
  date DATE,
  description TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

CREATE TABLE evidence (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  connection_id UUID REFERENCES connections(id) ON DELETE CASCADE,
  source_url TEXT,
  source_name VARCHAR(255),
  evidence_type VARCHAR(100), -- 'documento', 'noticia', 'declaracion_jurada', 'contrato', 'captura'
  excerpt TEXT,
  created_at TIMESTAMPTZ DEFAULT NOW()
);

-- Seed Larreta data
INSERT INTO lobby_groups (name, acronym, description)
VALUES
  ('Cámara de Comercio Argentino-Israelí', 'CCAI', 'Organización que promueve el intercambio comercial y tecnológico entre Argentina e Israel.'),
  ('Delegación de Asociaciones Israelitas Argentinas', 'DAIA', 'Organización que representa a la comunidad judía argentina ante autoridades.'),
  ('Asociación Mutual Israelita Argentina', 'AMIA', 'Institución central de la comunidad judía argentina.'),
  ('B''nai B''rith Argentina', 'BB', 'Organización judía internacional de servicio comunitario.');

INSERT INTO politicians (name, position, jurisdiction, party, total_lobby_ars, total_lobby_usd, status, bio)
VALUES (
  'Horacio Rodríguez Larreta',
  'Ex Jefe de Gobierno',
  'CABA',
  'PRO',
  2400000000,
  8000000,
  'red',
  'Jefe de Gobierno de CABA (2015-2023). Candidato presidencial en 2023. Vinculado a la Cámara de Comercio Argentino-Israelí a través de contratos públicos y nombramientos.'
);

INSERT INTO connections (politician_id, lobby_group_id, connection_type, amount_ars, amount_usd, date, description)
SELECT 
  p.id, g.id, 'contrato', 1114000000, 4500000, '2021-08-01'::date,
  'Contrato a Danaide SA (empresa de Mario Montoto, presidente CCAI) por sistema de control vehicular.'
FROM politicians p, lobby_groups g WHERE p.name ILIKE '%larreta%' AND g.acronym = 'CCAI'
UNION ALL
SELECT 
  p.id, g.id, 'contrato', 300000000, 1200000, '2021-09-01'::date,
  'Contrato a Danaide SA por análisis de video y gestión de imágenes.'
FROM politicians p, lobby_groups g WHERE p.name ILIKE '%larreta%' AND g.acronym = 'CCAI'
UNION ALL
SELECT 
  p.id, g.id, 'contrato', 964000000, 3200000, '2022-03-01'::date,
  'Contrato a CoDeSur SA (empresa vinculada a CCAI) por conectividad de seguridad.'
FROM politicians p, lobby_groups g WHERE p.name ILIKE '%larreta%' AND g.acronym = 'CCAI'
UNION ALL
SELECT 
  p.id, g.id, 'viaje', 3600000, 15000, '2022-06-24'::date,
  'Viaje oficial a Israel financiado con fondos públicos. Reuniones con Herzog, Shaked y la Knéset.'
FROM politicians p, lobby_groups g WHERE p.name ILIKE '%larreta%' AND g.acronym = 'CCAI'
UNION ALL
SELECT 
  p.id, g.id, 'nombramiento', 0, 0, '2022-12-01'::date,
  'Nombramiento de Waldo Wolff (ex vicepresidente DAIA) como Secretario de Asuntos Públicos.'
FROM politicians p, lobby_groups g WHERE p.name ILIKE '%larreta%' AND g.acronym = 'DAIA'
UNION ALL
SELECT 
  p.id, g.id, 'evento', 0, 0, '2022-10-12'::date,
  'Encuentro en sede DAIA con Knoblovits, Sela (Embajador Israel) y líderes comunitarios.'
FROM politicians p, lobby_groups g WHERE p.name ILIKE '%larreta%' AND g.acronym = 'DAIA'
UNION ALL
SELECT 
  p.id, g.id, 'financiamiento', 0, 0, '2019-07-01'::date,
  'Causa dólares negros: agencia Asombro Extremo cobró en dólares no declarados para campaña 2019.'
FROM politicians p, lobby_groups g WHERE p.name ILIKE '%larreta%' AND g.acronym = 'CCAI';

-- Enable RLS but allow public read
ALTER TABLE politicians ENABLE ROW LEVEL SECURITY;
ALTER TABLE lobby_groups ENABLE ROW LEVEL SECURITY;
ALTER TABLE connections ENABLE ROW LEVEL SECURITY;
ALTER TABLE evidence ENABLE ROW LEVEL SECURITY;

CREATE POLICY "Public read" ON politicians FOR SELECT USING (true);
CREATE POLICY "Public read" ON lobby_groups FOR SELECT USING (true);
CREATE POLICY "Public read" ON connections FOR SELECT USING (true);
CREATE POLICY "Public read" ON evidence FOR SELECT USING (true);
