-- ============================================================ -- Seed: Etapa 1 — Encuesta de Mapeo de Cuidadores -- -- Carga: -- 1. 1 organización de prueba -- 2. 1 consent_version v1 (scopes: operativo + macro_n1) -- 3. 1 encuesta "Mapeo de Cuidadores" (anónima, sensible, confidencial, Modo A) -- 4. 9 preguntas con códigos del mockup: -- B1 (yes_no), B2, B4, B5 — situación de cuidado (B5 is_sensitive=true) -- C1 (yes_no) — impacto laboral -- D1 (yes_no) — apoyo recibido -- G4 (single_choice) — frecuencia de estrés [condicional a C1=yes] -- H1 (multiple_choice, max_select=3) — apoyo preferido -- H3 (text_long) — comentarios libres -- 5. conditional_rules: B1 → show B2/B4/B5; C1 → show G4 -- -- UUIDs fijos para reproducibilidad y referencia desde tests. -- Nota: el mockup original no estaba disponible; los textos de pregunta -- son diseñados según el contexto "mapeo de cuidadores". Ver ETAPA_1_PROMPT.md. -- ============================================================ -- UUIDs de referencia: -- org: 10000000-0000-0000-0000-000000000001 -- consent_v1: 20000000-0000-0000-0000-000000000001 -- survey: 30000000-0000-0000-0000-000000000001 -- q_B1..q_H3: 4000...0001 al 4000...0009 -- ============================================================ -- 1. Organización de prueba -- ============================================================ INSERT INTO public.organizations (id, name, sector, size_bucket) VALUES ( '10000000-0000-0000-0000-000000000001', 'Empresa Demo S.A.', 'Servicios', '100-500' ) ON CONFLICT (id) DO NOTHING; -- ============================================================ -- 2. Versión de consentimiento v1 -- Scopes ofrecidos: operativo (dashboard empresa) + macro_n1 (estudio país anonimizado) -- NO incluye macro_n3 (atribuible) — decisión de v1 (ADR-001) -- ============================================================ INSERT INTO public.consent_versions (id, version, body, scopes) VALUES ( '20000000-0000-0000-0000-000000000001', 'v1', 'Esta encuesta es completamente anónima: no registramos tu nombre, número de documento ' 'ni ningún dato que permita identificarte personalmente. ' 'Tus respuestas se usarán con dos propósitos: ' '(1) Ayudar a tu empresa a comprender la situación de cuidado de sus colaboradores y ' 'diseñar apoyos más adecuados (uso operativo, solo agregados). ' '(2) Contribuir a un estudio de alcance nacional sobre la "economía del cuidado" en Paraguay, ' 'utilizando únicamente datos anonimizados e irreversiblemente desvinculados de cualquier empresa ' '(Nivel 1 anonimizado). ' 'Una vez enviada tu respuesta, al ser anónima, no es posible retirarla ni modificarla. ' 'Podés elegir qué propósitos autorizás marcando las casillas a continuación.', '["operativo", "macro_n1"]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- ============================================================ -- 3. Encuesta: Mapeo de Cuidadores -- Anónima + Sensible (contiene datos de salud/discapacidad) + Confidencial -- Modo A: nosotros como responsables del tratamiento -- k_threshold=5: ninguna celda expuesta con n<5 -- ============================================================ INSERT INTO public.surveys ( id, org_id, title, status, is_anonymous, data_sensitivity, security_class, controller_role, consent_version_id, k_threshold ) VALUES ( '30000000-0000-0000-0000-000000000001', '10000000-0000-0000-0000-000000000001', 'Mapeo de Cuidadores — Edición 2026', 'draft', true, -- anónima (regla no negociable #2: respondent_id siempre NULL) 'sensible', -- contiene preguntas de salud/discapacidad (B5) 'confidencial', -- acceso restringido a la empresa y analistas internos 'A', -- Modo A: InQ es responsable del tratamiento (v1 solo Modo A) '20000000-0000-0000-0000-000000000001', 5 -- umbral k-anonimato por defecto ) ON CONFLICT (id) DO NOTHING; -- ============================================================ -- 4. Preguntas de la encuesta -- Orden: position define el flujo de presentación -- conditional_rules en el formato: [{ if_question, op, value, action, target }] -- if_question = code de la pregunta trigger -- target = code de la pregunta afectada -- ============================================================ -- B1: Pregunta disparadora — ¿Tenés persona a cargo? -- Si es "yes" → se despliegan B2, B4, B5 INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, conditional_rules ) VALUES ( '40000000-0000-0000-0000-000000000001', '30000000-0000-0000-0000-000000000001', 'B1', 'yes_no', '¿Tenés a cargo a una o más personas con discapacidad permanente o adultos mayores ' '(60 años o más) que requieran cuidados especiales de forma regular?', 1, false, true, '[ {"if_question": "B1", "op": "eq", "value": "yes", "action": "show", "target": "B2"}, {"if_question": "B1", "op": "eq", "value": "yes", "action": "show", "target": "B4"}, {"if_question": "B1", "op": "eq", "value": "yes", "action": "show", "target": "B5"} ]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- B2: ¿Cuántas personas a cargo? (condicional a B1=yes) INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, options ) VALUES ( '40000000-0000-0000-0000-000000000002', '30000000-0000-0000-0000-000000000001', 'B2', 'single_choice', '¿Cuántas personas a tu cargo requieren cuidado especial?', 2, false, false, '[ {"value": "1", "label": "1 persona"}, {"value": "2", "label": "2 personas"}, {"value": "3+", "label": "3 o más personas"} ]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- B4: Relación con la persona a cargo (condicional a B1=yes) INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, options ) VALUES ( '40000000-0000-0000-0000-000000000003', '30000000-0000-0000-0000-000000000001', 'B4', 'single_choice', '¿Cuál es tu relación con la principal persona que cuidás?', 3, false, false, '[ {"value": "hijo_a", "label": "Hijo/a"}, {"value": "padre_madre", "label": "Padre, madre o suegro/a"}, {"value": "conyuge", "label": "Cónyuge o pareja"}, {"value": "hermano_a", "label": "Hermano/a"}, {"value": "otro_familiar", "label": "Otro familiar"}, {"value": "otra", "label": "Otra relación"} ]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- B5: Tipo de discapacidad/condición (condicional a B1=yes) -- is_sensitive=true: contiene datos de salud (categoría especial Ley 7593/2025) INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, options ) VALUES ( '40000000-0000-0000-0000-000000000004', '30000000-0000-0000-0000-000000000001', 'B5', 'multiple_choice', '¿Qué tipo de discapacidad o condición tiene la persona que cuidás? ' '(Podés marcar más de una opción)', 4, true, -- SENSIBLE: dato de salud/discapacidad (Ley 7593, categoría especial) false, '[ {"value": "fisica", "label": "Física o motriz"}, {"value": "visual", "label": "Visual"}, {"value": "auditiva", "label": "Auditiva"}, {"value": "mental", "label": "Mental o psicosocial"}, {"value": "intelectual", "label": "Intelectual o cognitiva"}, {"value": "am_sin_cert", "label": "Adulto mayor sin discapacidad certificada"}, {"value": "otra", "label": "Otra condición"} ]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- C1: Impacto laboral -- Si es "yes" → se despliega G4 INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, conditional_rules ) VALUES ( '40000000-0000-0000-0000-000000000005', '30000000-0000-0000-0000-000000000001', 'C1', 'yes_no', '¿Sentís que tu rol de cuidador/a afecta tu asistencia, puntualidad o rendimiento ' 'en el trabajo?', 5, false, true, '[ {"if_question": "C1", "op": "eq", "value": "yes", "action": "show", "target": "G4"} ]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- D1: Apoyo recibido de la empresa -- Declarada como trigger de sub-preguntas; sub-preguntas se agregan en iteración posterior INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, conditional_rules ) VALUES ( '40000000-0000-0000-0000-000000000006', '30000000-0000-0000-0000-000000000001', 'D1', 'yes_no', '¿Tu empresa te ofrece actualmente algún apoyo o beneficio pensado para personas que ' 'cuidan a familiares con discapacidad o adultos mayores?', 6, false, true, '[]'::jsonb -- sub-preguntas a agregar en iteración posterior (mockup pendiente) ) ON CONFLICT (id) DO NOTHING; -- G4: Frecuencia de estrés (condicional a C1=yes) INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, options ) VALUES ( '40000000-0000-0000-0000-000000000007', '30000000-0000-0000-0000-000000000001', 'G4', 'single_choice', '¿Con qué frecuencia la situación de cuidado te genera preocupación o estrés ' 'durante tu jornada laboral?', 7, false, false, '[ {"value": "nunca", "label": "Nunca"}, {"value": "raramente", "label": "Raramente (1-2 veces por mes)"}, {"value": "a_veces", "label": "A veces (1-2 veces por semana)"}, {"value": "frecuentemente","label": "Frecuentemente (casi todos los días)"}, {"value": "siempre", "label": "Siempre (todos los días)"} ]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- H1: Apoyo preferido (max_select=3) INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required, max_select, options ) VALUES ( '40000000-0000-0000-0000-000000000008', '30000000-0000-0000-0000-000000000001', 'H1', 'multiple_choice', '¿Qué tipos de apoyo de parte de la empresa valorarías más? ' 'Elegí hasta 3 opciones.', 8, false, false, 3, -- max_select=3 (mockup H1) '[ {"value": "horario_flex", "label": "Horarios flexibles o trabajo híbrido"}, {"value": "teletrabajo", "label": "Teletrabajo permanente"}, {"value": "licencias", "label": "Licencias especiales para situaciones de cuidado"}, {"value": "apoyo_eco", "label": "Apoyo económico o subsidio"}, {"value": "orientacion", "label": "Orientación o asesoramiento profesional"}, {"value": "grupos_apoyo", "label": "Grupos de apoyo entre pares"}, {"value": "recursos_ext", "label": "Conexión con servicios o recursos externos"}, {"value": "otro", "label": "Otro (especificar en comentarios)"} ]'::jsonb ) ON CONFLICT (id) DO NOTHING; -- H3: Texto libre — NO expuesto en el store analítico crudo (regla #4 CLAUDE.md) INSERT INTO public.questions ( id, survey_id, code, type, prompt, position, is_sensitive, required ) VALUES ( '40000000-0000-0000-0000-000000000009', '30000000-0000-0000-0000-000000000001', 'H3', 'text_long', 'Si querés compartir algo más sobre tu situación o tenés sugerencias para la empresa, ' 'podés hacerlo acá. (Opcional — tu respuesta es anónima)', 9, false, false ) ON CONFLICT (id) DO NOTHING;