Extiende questions con instance_generator/instance_of/hint y documenta los operadores contains/eq_sole en conditional_rules (ADR-005). Reescribe seed.sql con el instrumento v3.0.0 completo: 10 secciones, 40 preguntas (2 consentimiento + 38), contenido 100% desde Formulario_Mapeo_Corregido.xlsx (versión autoritativa). Flujo declarativo en datos, no en presentación: 3.1='No' oculta 3.2-3.5; "Ninguna" en 4.1 salta a S10; "solo niño sin discapacidad" deja visibles 5.3, 8.4, 9.1, 9.4 y oculta el resto (decisión confirmada sobre el Excel corregido). SEED_SPEC.md reescrito como contrato v3.0.0. No ejecutado en producción — solo archivos de migración y seed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
746 lines
57 KiB
SQL
746 lines
57 KiB
SQL
-- ============================================================
|
||
-- seed.sql — Instrumento "Mapeo de Cuidadores" v3.0.0
|
||
-- 10 secciones · 40 preguntas (2 consentimiento + 38 encuesta)
|
||
--
|
||
-- Fuente autoritativa:
|
||
-- Textos de preguntas y opciones: Formulario_Mapeo_Corregido.xlsx (versión corregida)
|
||
-- Estructura de secciones y flujo: wizard_formulario_mapeo_v3.html +
|
||
-- confirmación directora: recorrido soloNino = 5.3 → 8.4 → 9.1 → 9.4
|
||
--
|
||
-- Requiere migración aplicada: 20260620000002_form_schema_v3.sql
|
||
-- (agrega columns hint, instance_generator, instance_of a questions)
|
||
--
|
||
-- ⚠ SOLO ENTORNOS DE DESARROLLO — nunca ejecutar en producción.
|
||
-- En producción: aplicar migraciones manualmente vía CLI del VPS.
|
||
-- El seed elimina respuestas y preguntas previas de las 3 encuestas.
|
||
--
|
||
-- Flujo declarativo (ADR-005 — lógica en datos, renderer es puro):
|
||
-- 3.1 = 'No' → oculta 3.2–3.5 (discapacidad propia no aplica)
|
||
-- 4.1 ∋ 'Ninguna...' → oculta S5–S9 (salta a S10)
|
||
-- 4.1 = sole 'Hijo menor sin discapacidad' (soloNino):
|
||
-- → oculta 5.1, 5.2, 5.4, S6, S7, 8.1–8.3, 9.2, 9.3
|
||
-- → muestra 5.3, 8.4, 9.1, 9.4
|
||
--
|
||
-- UUIDs:
|
||
-- orgs: 10000000-0000-0000-0000-00000000000{1,2,3}
|
||
-- cv-v1: 20000000-0000-0000-0000-000000000001 (preservado)
|
||
-- cv-v2: 20000000-0000-0000-0000-000000000002 (instrumento v3)
|
||
-- surveys: 30000000-0000-0000-0000-00000000000{1,2,3}
|
||
-- preguntas: gen_random_uuid() — v3 es seed limpio
|
||
-- ============================================================
|
||
|
||
-- ── Organizaciones ────────────────────────────────────────────
|
||
INSERT INTO public.organizations (id, name, sector, size_bucket) VALUES
|
||
('10000000-0000-0000-0000-000000000001', 'Empresa Demo S.A.', 'Servicios', '100-500'),
|
||
('10000000-0000-0000-0000-000000000002', 'InQuality', 'Consultoría/Tecnología', '1-50'),
|
||
('10000000-0000-0000-0000-000000000003', 'Fundación Solidaridad', 'Sociedad Civil/ONG', '1-50')
|
||
ON CONFLICT (id) DO UPDATE SET
|
||
name = EXCLUDED.name,
|
||
sector = EXCLUDED.sector,
|
||
size_bucket = EXCLUDED.size_bucket;
|
||
|
||
-- ── Consent versions ──────────────────────────────────────────
|
||
-- v1: texto original (preservar — lo referencian consent_records existentes)
|
||
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 ni ningún dato que permita '
|
||
'identificarte. Tus respuestas se usan para (1) ayudar a tu empresa con apoyos sobre cuidado y '
|
||
'discapacidad, y (2) un estudio nacional anonimizado. Al ser anónima, no es posible retirar '
|
||
'ni modificar tu respuesta una vez enviada.',
|
||
'["operativo","macro_n1"]'::jsonb
|
||
) ON CONFLICT (id) DO NOTHING;
|
||
|
||
-- v2: texto revisado para instrumento v3.0.0 (Formulario_Mapeo_Corregido.xlsx — S1 intro)
|
||
INSERT INTO public.consent_versions (id, version, body, scopes)
|
||
VALUES (
|
||
'20000000-0000-0000-0000-000000000002', 'v2',
|
||
'Esta es una encuesta sobre el cuidado de familiares con discapacidad o adultos mayores en '
|
||
'situación de dependencia, y cómo este cuidado impacta en el trabajo. '
|
||
'Tu participación es voluntaria y anónima, y no afecta de ninguna manera tu situación laboral. '
|
||
'No hay respuestas correctas ni incorrectas: solo nos interesa tu experiencia. '
|
||
'Te va a llevar entre 3 y 10 minutos, según tu situación. '
|
||
'Tu privacidad es muy importante. No te pedimos datos que te identifiquen (nombre, documento, '
|
||
'correo). Los resultados se reportan siempre de forma agregada, nunca como respuestas '
|
||
'individuales, y solo cuando hay suficientes respuestas para que nadie pueda ser identificado. '
|
||
'Justamente por ser anónima, una vez enviada no es posible ubicar ni eliminar tu respuesta.',
|
||
'["operativo","macro_n1"]'::jsonb
|
||
) ON CONFLICT (id) DO NOTHING;
|
||
|
||
-- ── Encuestas ─────────────────────────────────────────────────
|
||
INSERT INTO public.surveys (
|
||
id, org_id, title, status, is_anonymous,
|
||
data_sensitivity, security_class, controller_role,
|
||
consent_version_id, brand_config, k_threshold
|
||
) VALUES
|
||
(
|
||
'30000000-0000-0000-0000-000000000001',
|
||
'10000000-0000-0000-0000-000000000001',
|
||
'Mapeo de Cuidadores — 2026', 'draft', true,
|
||
'sensible', 'confidencial', 'A',
|
||
'20000000-0000-0000-0000-000000000002',
|
||
'{"org_name":"Empresa Demo","branch_name":"Oficina Central","branch_city":"Asunción"}',
|
||
5
|
||
),
|
||
(
|
||
'30000000-0000-0000-0000-000000000002',
|
||
'10000000-0000-0000-0000-000000000002',
|
||
'Mapeo de Cuidadores — 2026', 'live', true,
|
||
'sensible', 'confidencial', 'A',
|
||
'20000000-0000-0000-0000-000000000002',
|
||
'{"org_name":"InQuality","branch_name":"Equipo InQuality","branch_city":"Asunción"}',
|
||
5
|
||
),
|
||
(
|
||
'30000000-0000-0000-0000-000000000003',
|
||
'10000000-0000-0000-0000-000000000003',
|
||
'Mapeo de Cuidadores — 2026', 'live', true,
|
||
'sensible', 'confidencial', 'A',
|
||
'20000000-0000-0000-0000-000000000002',
|
||
'{"org_name":"Fundación Solidaridad","branch_name":"Equipo Fundación","branch_city":"Asunción"}',
|
||
5
|
||
)
|
||
ON CONFLICT (id) DO UPDATE SET
|
||
consent_version_id = EXCLUDED.consent_version_id,
|
||
brand_config = EXCLUDED.brand_config,
|
||
status = EXCLUDED.status;
|
||
|
||
-- ══════════════════════════════════════════════════════════════
|
||
-- Instrumento v3.0.0 — 50 filas por encuesta (10 secciones + 40 preguntas)
|
||
-- DO block: itera las 3 encuestas; opciones largas se declaran como variables
|
||
-- ══════════════════════════════════════════════════════════════
|
||
DO $seed$
|
||
DECLARE
|
||
survey_ids uuid[];
|
||
sid uuid;
|
||
|
||
-- Geo
|
||
opts_depts jsonb;
|
||
opts_cities jsonb;
|
||
|
||
-- Opciones compartidas entre secciones
|
||
opts_tipo_disc jsonb; -- 3.2 y 4.2
|
||
opts_disp_propia jsonb; -- 3.3: "No utilizo"
|
||
opts_disp_familiar jsonb; -- 4.3: "No utiliza"
|
||
opts_vinculos jsonb; -- 4.1
|
||
|
||
-- Reglas de flujo condicional (ver vocabulario en migración 20260620000002)
|
||
r_show_si_s3_1 jsonb; -- mostrar cuando 3.1 = 'Sí'
|
||
r_hide_ning jsonb; -- ocultar cuando 4.1 contiene "Ninguna..."
|
||
r_hide_ning_sn jsonb; -- ocultar cuando Ninguna O soloNino (5.1,5.2,5.4,S6,S7,8.1-3,9.2,9.3)
|
||
r_hide_instance jsonb; -- ocultar 4.2/4.3 cuando soloNino O Ninguna
|
||
|
||
BEGIN
|
||
survey_ids := ARRAY[
|
||
'30000000-0000-0000-0000-000000000001',
|
||
'30000000-0000-0000-0000-000000000002',
|
||
'30000000-0000-0000-0000-000000000003'
|
||
]::uuid[];
|
||
|
||
-- ── Departamentos (18 — todos los de Paraguay + Capital) ───
|
||
opts_depts := '[
|
||
{"value":"Asunción (Capital)","label":"Asunción (Capital)"},
|
||
{"value":"Alto Paraguay","label":"Alto Paraguay"},
|
||
{"value":"Alto Paraná","label":"Alto Paraná"},
|
||
{"value":"Amambay","label":"Amambay"},
|
||
{"value":"Boquerón","label":"Boquerón"},
|
||
{"value":"Caaguazú","label":"Caaguazú"},
|
||
{"value":"Caazapá","label":"Caazapá"},
|
||
{"value":"Canindeyú","label":"Canindeyú"},
|
||
{"value":"Central","label":"Central"},
|
||
{"value":"Concepción","label":"Concepción"},
|
||
{"value":"Cordillera","label":"Cordillera"},
|
||
{"value":"Guairá","label":"Guairá"},
|
||
{"value":"Itapúa","label":"Itapúa"},
|
||
{"value":"Misiones","label":"Misiones"},
|
||
{"value":"Ñeembucú","label":"Ñeembucú"},
|
||
{"value":"Paraguarí","label":"Paraguarí"},
|
||
{"value":"Presidente Hayes","label":"Presidente Hayes"},
|
||
{"value":"San Pedro","label":"San Pedro"}
|
||
]'::jsonb;
|
||
|
||
-- ── Ciudades (219 — fuente: lib/paraguay-geo.ts; filtrado por depto en el renderer) ──
|
||
opts_cities := '[
|
||
{"value":"Asunción","label":"Asunción"},
|
||
{"value":"Fuerte Olimpo","label":"Fuerte Olimpo"},{"value":"Bahía Negra","label":"Bahía Negra"},{"value":"Carmelo Peralta","label":"Carmelo Peralta"},{"value":"La Victoria","label":"La Victoria"},
|
||
{"value":"Ciudad del Este","label":"Ciudad del Este"},{"value":"Hernandarias","label":"Hernandarias"},{"value":"Minga Guazú","label":"Minga Guazú"},{"value":"Presidente Franco","label":"Presidente Franco"},{"value":"Minga Porã","label":"Minga Porã"},{"value":"Naranjal","label":"Naranjal"},{"value":"Ñacunday","label":"Ñacunday"},{"value":"San Alberto","label":"San Alberto"},{"value":"Santa Rita","label":"Santa Rita"},{"value":"Tavapy","label":"Tavapy"},{"value":"Yguazú","label":"Yguazú"},{"value":"Juan E. O''Leary","label":"Juan E. O''Leary"},{"value":"San Cristóbal","label":"San Cristóbal"},{"value":"Santa Fe del Paraná","label":"Santa Fe del Paraná"},{"value":"Dr. Juan León Mallorquín","label":"Dr. Juan León Mallorquín"},{"value":"Itakyry","label":"Itakyry"},{"value":"Domingo Martínez de Irala","label":"Domingo Martínez de Irala"},
|
||
{"value":"Pedro Juan Caballero","label":"Pedro Juan Caballero"},{"value":"Bella Vista Norte","label":"Bella Vista Norte"},{"value":"Capitán Bado","label":"Capitán Bado"},{"value":"Zanja Pytã","label":"Zanja Pytã"},
|
||
{"value":"Filadelfia","label":"Filadelfia"},{"value":"Loma Plata","label":"Loma Plata"},{"value":"Mariscal Estigarribia","label":"Mariscal Estigarribia"},{"value":"Neuland","label":"Neuland"},
|
||
{"value":"Coronel Oviedo","label":"Coronel Oviedo"},{"value":"Caaguazú","label":"Caaguazú"},{"value":"Carayaó","label":"Carayaó"},{"value":"Dr. Juan Manuel Frutos","label":"Dr. Juan Manuel Frutos"},{"value":"Mbutuy","label":"Mbutuy"},{"value":"Nueva Londres","label":"Nueva Londres"},{"value":"Raúl Arsenio Oviedo","label":"Raúl Arsenio Oviedo"},{"value":"Repatriación","label":"Repatriación"},{"value":"San Joaquín","label":"San Joaquín"},{"value":"San José de los Arroyos","label":"San José de los Arroyos"},{"value":"Simón Bolívar","label":"Simón Bolívar"},{"value":"Vaquería","label":"Vaquería"},{"value":"Yhú","label":"Yhú"},{"value":"José Domingo Ocampos","label":"José Domingo Ocampos"},{"value":"3 de Febrero","label":"3 de Febrero"},{"value":"Mcal. Francisco Solano López","label":"Mcal. Francisco Solano López"},{"value":"Los Cedrales","label":"Los Cedrales"},
|
||
{"value":"Caazapá","label":"Caazapá"},{"value":"Abai","label":"Abai"},{"value":"Buena Vista","label":"Buena Vista"},{"value":"General Higinio Morínigo","label":"General Higinio Morínigo"},{"value":"Huber Duré","label":"Huber Duré"},{"value":"Maciel","label":"Maciel"},{"value":"San Juan Nepomuceno","label":"San Juan Nepomuceno"},{"value":"Tavaí","label":"Tavaí"},{"value":"Yegros","label":"Yegros"},{"value":"Yuty","label":"Yuty"},
|
||
{"value":"Salto del Guairá","label":"Salto del Guairá"},{"value":"Corpus Christi","label":"Corpus Christi"},{"value":"Curuguaty","label":"Curuguaty"},{"value":"General Francisco Caballero Álvarez","label":"General Francisco Caballero Álvarez"},{"value":"Itanará","label":"Itanará"},{"value":"Katueté","label":"Katueté"},{"value":"La Paloma","label":"La Paloma"},{"value":"Nueva Esperanza","label":"Nueva Esperanza"},{"value":"Yasy Kañy","label":"Yasy Kañy"},{"value":"Ypejhú","label":"Ypejhú"},
|
||
{"value":"Areguá","label":"Areguá"},{"value":"Capiatá","label":"Capiatá"},{"value":"Fernando de la Mora","label":"Fernando de la Mora"},{"value":"Guarambaré","label":"Guarambaré"},{"value":"Itá","label":"Itá"},{"value":"Itauguá","label":"Itauguá"},{"value":"Juan Augusto Saldívar","label":"Juan Augusto Saldívar"},{"value":"Lambaré","label":"Lambaré"},{"value":"Limpio","label":"Limpio"},{"value":"Luque","label":"Luque"},{"value":"Mariano Roque Alonso","label":"Mariano Roque Alonso"},{"value":"Nueva Italia","label":"Nueva Italia"},{"value":"Ñemby","label":"Ñemby"},{"value":"San Antonio","label":"San Antonio"},{"value":"San Lorenzo","label":"San Lorenzo"},{"value":"Villa Elisa","label":"Villa Elisa"},{"value":"Villeta","label":"Villeta"},{"value":"Ypané","label":"Ypané"},{"value":"Ypacaraí","label":"Ypacaraí"},
|
||
{"value":"Concepción","label":"Concepción"},{"value":"Belén","label":"Belén"},{"value":"Horqueta","label":"Horqueta"},{"value":"Loreto","label":"Loreto"},{"value":"San Lázaro","label":"San Lázaro"},{"value":"San Carlos del Apa","label":"San Carlos del Apa"},{"value":"Yby Yaú","label":"Yby Yaú"},{"value":"Azote''y","label":"Azote''y"},{"value":"Sgto. José Félix López","label":"Sgto. José Félix López"},
|
||
{"value":"Caacupé","label":"Caacupé"},{"value":"Altos","label":"Altos"},{"value":"Arroyos y Esteros","label":"Arroyos y Esteros"},{"value":"Caraguatay","label":"Caraguatay"},{"value":"Emboscada","label":"Emboscada"},{"value":"Eusebio Ayala","label":"Eusebio Ayala"},{"value":"Isla Pucú","label":"Isla Pucú"},{"value":"Itacurubí de la Cordillera","label":"Itacurubí de la Cordillera"},{"value":"Juan de Mena","label":"Juan de Mena"},{"value":"Loma Grande","label":"Loma Grande"},{"value":"Mbocayaty del Yhaguy","label":"Mbocayaty del Yhaguy"},{"value":"Nueva Colombia","label":"Nueva Colombia"},{"value":"Pirayú","label":"Pirayú"},{"value":"Primero de Marzo","label":"Primero de Marzo"},{"value":"Tobatí","label":"Tobatí"},{"value":"Valenzuela","label":"Valenzuela"},
|
||
{"value":"Villarrica","label":"Villarrica"},{"value":"Borja","label":"Borja"},{"value":"Capitán Mauricio José Troche","label":"Capitán Mauricio José Troche"},{"value":"Coronel Martínez","label":"Coronel Martínez"},{"value":"Félix Pérez Cardozo","label":"Félix Pérez Cardozo"},{"value":"General Eugenio A. Garay","label":"General Eugenio A. Garay"},{"value":"Independencia","label":"Independencia"},{"value":"Itapé","label":"Itapé"},{"value":"Iturbe","label":"Iturbe"},{"value":"José Fassardi","label":"José Fassardi"},{"value":"Mbocayaty","label":"Mbocayaty"},{"value":"Natalicio Talavera","label":"Natalicio Talavera"},{"value":"Ñumí","label":"Ñumí"},{"value":"San Salvador","label":"San Salvador"},{"value":"Yataity","label":"Yataity"},
|
||
{"value":"Encarnación","label":"Encarnación"},{"value":"Alto Verá","label":"Alto Verá"},{"value":"Bella Vista","label":"Bella Vista"},{"value":"Cambyretá","label":"Cambyretá"},{"value":"Capitán Meza","label":"Capitán Meza"},{"value":"Capitán Miranda","label":"Capitán Miranda"},{"value":"Carlos A. López","label":"Carlos A. López"},{"value":"Carmen del Paraná","label":"Carmen del Paraná"},{"value":"Coronel Bogado","label":"Coronel Bogado"},{"value":"Cosme","label":"Cosme"},{"value":"Edelira","label":"Edelira"},{"value":"Fram","label":"Fram"},{"value":"General Artigas","label":"General Artigas"},{"value":"Hohenau","label":"Hohenau"},{"value":"Itapúa Poty","label":"Itapúa Poty"},{"value":"Jesús","label":"Jesús"},{"value":"La Paz","label":"La Paz"},{"value":"Leandro Oviedo","label":"Leandro Oviedo"},{"value":"Mayor Otaño","label":"Mayor Otaño"},{"value":"Natalio","label":"Natalio"},{"value":"Nueva Alborada","label":"Nueva Alborada"},{"value":"Obligado","label":"Obligado"},{"value":"Pirapó","label":"Pirapó"},{"value":"San Cosme y Damián","label":"San Cosme y Damián"},{"value":"San Juan del Paraná","label":"San Juan del Paraná"},{"value":"San Pedro del Paraná","label":"San Pedro del Paraná"},{"value":"San Rafael del Paraná","label":"San Rafael del Paraná"},{"value":"Trinidad","label":"Trinidad"},{"value":"Tomás Romero Pereira","label":"Tomás Romero Pereira"},
|
||
{"value":"San Juan Bautista","label":"San Juan Bautista"},{"value":"Ayolas","label":"Ayolas"},{"value":"San Ignacio","label":"San Ignacio"},{"value":"San Miguel","label":"San Miguel"},{"value":"San Patricio","label":"San Patricio"},{"value":"Santa María","label":"Santa María"},{"value":"Santa Rosa","label":"Santa Rosa"},{"value":"Santiago","label":"Santiago"},{"value":"Villa Florida","label":"Villa Florida"},{"value":"Yabebyry","label":"Yabebyry"},
|
||
{"value":"Pilar","label":"Pilar"},{"value":"Alberdi","label":"Alberdi"},{"value":"Cerrito","label":"Cerrito"},{"value":"Desmochados","label":"Desmochados"},{"value":"General José Eduvigis Díaz","label":"General José Eduvigis Díaz"},{"value":"Guazú Cuá","label":"Guazú Cuá"},{"value":"Humaitá","label":"Humaitá"},{"value":"Isla Umbú","label":"Isla Umbú"},{"value":"Laureles","label":"Laureles"},{"value":"Mayor José de J. Martínez","label":"Mayor José de J. Martínez"},{"value":"Paso de Patria","label":"Paso de Patria"},{"value":"San Juan Bautista del Ñeembucú","label":"San Juan Bautista del Ñeembucú"},{"value":"Tacuaras","label":"Tacuaras"},{"value":"Villa Franca","label":"Villa Franca"},{"value":"Villa Oliva","label":"Villa Oliva"},{"value":"Villalba","label":"Villalba"},
|
||
{"value":"Paraguarí","label":"Paraguarí"},{"value":"Acahay","label":"Acahay"},{"value":"Carapeguá","label":"Carapeguá"},{"value":"Escobar","label":"Escobar"},{"value":"General Bernardino Caballero","label":"General Bernardino Caballero"},{"value":"La Colmena","label":"La Colmena"},{"value":"Mbuyapey","label":"Mbuyapey"},{"value":"Quiindy","label":"Quiindy"},{"value":"Quyquyhó","label":"Quyquyhó"},{"value":"San Roque González de Santa Cruz","label":"San Roque González de Santa Cruz"},{"value":"Sapucaí","label":"Sapucaí"},{"value":"Tebicuarymí","label":"Tebicuarymí"},{"value":"Ybycuí","label":"Ybycuí"},{"value":"Ybytymí","label":"Ybytymí"},{"value":"Yaguarón","label":"Yaguarón"},
|
||
{"value":"Villa Hayes","label":"Villa Hayes"},{"value":"Benjamín Aceval","label":"Benjamín Aceval"},{"value":"José Falcón","label":"José Falcón"},{"value":"Nanawa","label":"Nanawa"},{"value":"Nueva Asunción","label":"Nueva Asunción"},{"value":"Pozo Colorado","label":"Pozo Colorado"},{"value":"Puerto Pinasco","label":"Puerto Pinasco"},{"value":"Teniente Primero Manuel Irala Fernández","label":"Teniente Primero Manuel Irala Fernández"},{"value":"Villa del Río","label":"Villa del Río"},
|
||
{"value":"San Pedro del Ycuamandiyú","label":"San Pedro del Ycuamandiyú"},{"value":"Antequera","label":"Antequera"},{"value":"Choré","label":"Choré"},{"value":"General Elizardo Aquino","label":"General Elizardo Aquino"},{"value":"Guayaibí","label":"Guayaibí"},{"value":"Itacurubí del Rosario","label":"Itacurubí del Rosario"},{"value":"Lima","label":"Lima"},{"value":"Nueva Germania","label":"Nueva Germania"},{"value":"Río Verde","label":"Río Verde"},{"value":"San Estanislao (Santaní)","label":"San Estanislao (Santaní)"},{"value":"Tacuatí","label":"Tacuatí"},{"value":"Unión","label":"Unión"},{"value":"Villa del Rosario","label":"Villa del Rosario"},{"value":"Yataity del Norte","label":"Yataity del Norte"}
|
||
]'::jsonb;
|
||
|
||
-- ── Tipo de discapacidad (compartido 3.2 y 4.2) ─────────────
|
||
opts_tipo_disc := '[
|
||
{"value":"Física / motora","label":"Física / motora"},
|
||
{"value":"Visual","label":"Visual"},
|
||
{"value":"Auditiva","label":"Auditiva"},
|
||
{"value":"Intelectual","label":"Intelectual"},
|
||
{"value":"Mental / psicosocial","label":"Mental / psicosocial"},
|
||
{"value":"Del habla y la comunicación","label":"Del habla y la comunicación"},
|
||
{"value":"Múltiple","label":"Múltiple"},
|
||
{"value":"Vejez, osteoporosis, artrosis, otras limitaciones de la edad","label":"Vejez, osteoporosis, artrosis, otras limitaciones de la edad"},
|
||
{"value":"Amputación","label":"Amputación"},
|
||
{"value":"Otra / Especificar","label":"Otra / Especificar"}
|
||
]'::jsonb;
|
||
|
||
-- ── Dispositivos de apoyo ────────────────────────────────────
|
||
opts_disp_propia := '[
|
||
{"value":"Silla de ruedas","label":"Silla de ruedas"},
|
||
{"value":"Bastón de apoyo","label":"Bastón de apoyo"},
|
||
{"value":"Bastón blanco","label":"Bastón blanco"},
|
||
{"value":"Andador","label":"Andador"},
|
||
{"value":"Muletas","label":"Muletas"},
|
||
{"value":"Prótesis","label":"Prótesis"},
|
||
{"value":"Tecnología asistiva","label":"Tecnología asistiva"},
|
||
{"value":"Audífonos","label":"Audífonos"},
|
||
{"value":"No utilizo","label":"No utilizo"}
|
||
]'::jsonb;
|
||
|
||
opts_disp_familiar := '[
|
||
{"value":"Silla de ruedas","label":"Silla de ruedas"},
|
||
{"value":"Bastón de apoyo","label":"Bastón de apoyo"},
|
||
{"value":"Bastón blanco","label":"Bastón blanco"},
|
||
{"value":"Andador","label":"Andador"},
|
||
{"value":"Muletas","label":"Muletas"},
|
||
{"value":"Prótesis","label":"Prótesis"},
|
||
{"value":"Tecnología asistiva","label":"Tecnología asistiva"},
|
||
{"value":"Audífonos","label":"Audífonos"},
|
||
{"value":"No utiliza","label":"No utiliza"}
|
||
]'::jsonb;
|
||
|
||
-- ── Vínculos familiares (4.1) ────────────────────────────────
|
||
opts_vinculos := '[
|
||
{"value":"Hijo menor sin discapacidad","label":"Hijo menor sin discapacidad"},
|
||
{"value":"Hijo menor con discapacidad","label":"Hijo menor con discapacidad"},
|
||
{"value":"Hijo adulto con discapacidad","label":"Hijo adulto con discapacidad"},
|
||
{"value":"Familiar menor con discapacidad","label":"Familiar menor con discapacidad"},
|
||
{"value":"Familiar mayor con discapacidad","label":"Familiar mayor con discapacidad"},
|
||
{"value":"Padre/madre con movilidad reducida o 100% dependiente","label":"Padre/madre con movilidad reducida o 100% dependiente"},
|
||
{"value":"Otro / Especificar","label":"Otro / Especificar"},
|
||
{"value":"Ninguna de las anteriores / No tengo vinculación de cuidado","label":"Ninguna de las anteriores / No tengo vinculación de cuidado"}
|
||
]'::jsonb;
|
||
|
||
-- ── Reglas de flujo ──────────────────────────────────────────
|
||
-- Mostrar 3.2–3.5 solo cuando 3.1 = 'Sí'
|
||
r_show_si_s3_1 := '[{"if_question":"3.1","op":"eq","value":"Sí","action":"show"}]'::jsonb;
|
||
|
||
-- Ocultar cuando 4.1 contiene "Ninguna de las anteriores..."
|
||
r_hide_ning := '[{"if_question":"4.1","op":"contains","value":"Ninguna de las anteriores / No tengo vinculación de cuidado","action":"hide"}]'::jsonb;
|
||
|
||
-- Ocultar cuando Ninguna O soloNino (4.1 sole = 'Hijo menor sin discapacidad')
|
||
r_hide_ning_sn := '[
|
||
{"if_question":"4.1","op":"contains","value":"Ninguna de las anteriores / No tengo vinculación de cuidado","action":"hide"},
|
||
{"if_question":"4.1","op":"eq_sole","value":"Hijo menor sin discapacidad","action":"hide"}
|
||
]'::jsonb;
|
||
|
||
-- Ocultar 4.2/4.3 cuando soloNino O Ninguna
|
||
r_hide_instance := '[
|
||
{"if_question":"4.1","op":"contains","value":"Ninguna de las anteriores / No tengo vinculación de cuidado","action":"hide"},
|
||
{"if_question":"4.1","op":"eq_sole","value":"Hijo menor sin discapacidad","action":"hide"}
|
||
]'::jsonb;
|
||
|
||
-- ════════════════════════════════════════════════════════════
|
||
FOREACH sid IN ARRAY survey_ids LOOP
|
||
-- ════════════════════════════════════════════════════════════
|
||
|
||
-- Limpiar datos previos en orden de dependencia FK (solo en dev).
|
||
-- consent_records es padre de responses (responses.consent_record_id → consent_records.id),
|
||
-- así que se borran los responses primero y se capturan sus consent_record_id para
|
||
-- eliminar esos registros recién después (huérfanos), nunca antes.
|
||
DELETE FROM public.answers
|
||
WHERE response_id IN (SELECT id FROM public.responses WHERE survey_id = sid);
|
||
|
||
WITH del_responses AS (
|
||
DELETE FROM public.responses WHERE survey_id = sid
|
||
RETURNING consent_record_id
|
||
)
|
||
DELETE FROM public.consent_records
|
||
WHERE id IN (SELECT consent_record_id FROM del_responses);
|
||
|
||
DELETE FROM public.questions WHERE survey_id = sid;
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 1 — Consentimiento
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required)
|
||
VALUES(gen_random_uuid(),sid,'S1','section','Consentimiento',10,false,false);
|
||
|
||
-- 1.1: casilla requerida para participar
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required)
|
||
VALUES(gen_random_uuid(),sid,'1.1','yes_no',
|
||
'Declaro que fui informado/a sobre el propósito de esta encuesta y el tratamiento de mis '
|
||
'respuestas, y acepto participar de forma voluntaria en el diagnóstico interno de [Empresa].',
|
||
11,false,true);
|
||
|
||
-- 1.2: casilla opcional (estudio país)
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required)
|
||
VALUES(gen_random_uuid(),sid,'1.2','yes_no',
|
||
'Autorizo que mis respuestas anonimizadas se utilicen para el estudio país sobre la '
|
||
'economía del cuidado en Paraguay.',
|
||
12,false,false);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 2 — Datos generales
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint)
|
||
VALUES(gen_random_uuid(),sid,'S2','section','Datos generales',20,false,false,
|
||
'Esta sección releva información demográfica básica, general y anónima.');
|
||
|
||
-- 2.1: Departamento — cuasi-identificador (18 opciones, lib/paraguay-geo.ts)
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options)
|
||
VALUES(gen_random_uuid(),sid,'2.1','single_choice','Departamento',21,false,false,opts_depts);
|
||
|
||
-- 2.2: Ciudad — cuasi-identificador (219 ciudades, filtro por depto en renderer)
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options)
|
||
VALUES(gen_random_uuid(),sid,'2.2','single_choice','Ciudad',22,false,false,opts_cities);
|
||
|
||
-- 2.3: Barrio — texto libre, opcional (barrios completos se agregan en Etapa 4F)
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint)
|
||
VALUES(gen_random_uuid(),sid,'2.3','text_short','¿En qué barrio vivís?',23,false,false,'Opcional.');
|
||
|
||
-- 2.4: Rango de edad — cuasi-identificador
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options)
|
||
VALUES(gen_random_uuid(),sid,'2.4','single_choice','¿Cuál es tu rango de edad?',24,false,false,
|
||
'[{"value":"Menos de 25 años","label":"Menos de 25 años"},
|
||
{"value":"25 a 34 años","label":"25 a 34 años"},
|
||
{"value":"35 a 44 años","label":"35 a 44 años"},
|
||
{"value":"45 a 54 años","label":"45 a 54 años"},
|
||
{"value":"55 años o más","label":"55 años o más"}]'::jsonb);
|
||
|
||
-- 2.5: Género — cuasi-identificador
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options)
|
||
VALUES(gen_random_uuid(),sid,'2.5','single_choice','¿Con qué género te identificás?',25,false,false,
|
||
'[{"value":"Femenino","label":"Femenino"},
|
||
{"value":"Masculino","label":"Masculino"},
|
||
{"value":"No binario / Otro","label":"No binario / Otro"}]'::jsonb);
|
||
|
||
-- 2.6: Nivel organizacional — cuasi-identificador
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options)
|
||
VALUES(gen_random_uuid(),sid,'2.6','single_choice','¿En qué nivel organizacional estás?',26,false,false,
|
||
'[{"value":"Directivo","label":"Directivo"},
|
||
{"value":"Gerencial","label":"Gerencial"},
|
||
{"value":"Jefatura","label":"Jefatura"},
|
||
{"value":"Operativo","label":"Operativo"},
|
||
{"value":"Auxiliar","label":"Auxiliar"},
|
||
{"value":"Otro / Especificar","label":"Otro / Especificar"}]'::jsonb);
|
||
|
||
-- 2.7: Modalidad de trabajo — cuasi-identificador
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options)
|
||
VALUES(gen_random_uuid(),sid,'2.7','single_choice','¿Cuál es tu modalidad de trabajo actual?',27,false,false,
|
||
'[{"value":"Presencial","label":"Presencial"},
|
||
{"value":"Remoto (home office)","label":"Remoto (home office)"},
|
||
{"value":"Híbrido","label":"Híbrido"}]'::jsonb);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 3 — Prevalencia de discapacidad (sensible)
|
||
-- Flujo: 3.1='No' → oculta 3.2–3.5 (regla: show cuando 3.1='Sí')
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint)
|
||
VALUES(gen_random_uuid(),sid,'S3','section','Prevalencia de discapacidad',30,false,false,
|
||
'En esta sección queremos conocer si vos tenés alguna condición discapacitante y cómo '
|
||
'influye en tu independencia y desempeño laboral.');
|
||
|
||
-- 3.1: trigger de discapacidad propia (is_sensitive — salud)
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options)
|
||
VALUES(gen_random_uuid(),sid,'3.1','single_choice',
|
||
'¿Vos mismo/a tenés alguna discapacidad o condición de salud que pudiera afectar tu '
|
||
'independencia o desempeño laboral?',
|
||
31,true,false,
|
||
'[{"value":"No","label":"No"},{"value":"Sí","label":"Sí"}]'::jsonb);
|
||
|
||
-- 3.2: tipo de discapacidad — solo si 3.1='Sí'
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'3.2','multiple_choice',
|
||
'¿Qué tipo de discapacidad o condición tenés?',
|
||
32,true,false,'Podés marcar más de una opción',opts_tipo_disc,r_show_si_s3_1);
|
||
|
||
-- 3.3: dispositivos de apoyo propios ("No utilizo") — solo si 3.1='Sí'
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'3.3','multiple_choice',
|
||
'¿Usás algún elemento de apoyo para la movilidad o autonomía?',
|
||
33,true,false,'Podés marcar más de una opción',opts_disp_propia,r_show_si_s3_1);
|
||
|
||
-- 3.4: certificado de discapacidad — solo si 3.1='Sí'
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'3.4','single_choice',
|
||
'¿Contás con certificado oficial de discapacidad?',
|
||
34,true,false,
|
||
'[{"value":"Sí","label":"Sí"},
|
||
{"value":"No, pero estoy en trámite","label":"No, pero estoy en trámite"},
|
||
{"value":"No","label":"No"}]'::jsonb,
|
||
r_show_si_s3_1);
|
||
|
||
-- 3.5: impacto en el trabajo — solo si 3.1='Sí'
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'3.5','multiple_choice',
|
||
'¿Cómo afecta tu discapacidad y/o condición limitante en tu trabajo?',
|
||
35,true,false,'Podés marcar más de una opción',
|
||
'[{"value":"No afecta mi rendimiento en absoluto","label":"No afecta mi rendimiento en absoluto"},
|
||
{"value":"Mi desempeño está más afectado por la falta de adecuaciones que por mi discapacidad (herramientas, accesibilidad)","label":"Mi desempeño está más afectado por la falta de adecuaciones que por mi discapacidad (herramientas, accesibilidad)"},
|
||
{"value":"Llegar al trabajo me lleva mucho tiempo por la falta de transporte","label":"Llegar al trabajo me lleva mucho tiempo por la falta de transporte"},
|
||
{"value":"Me cuesta participar de todas las actividades por temas de accesibilidad (física, lenguaje)","label":"Me cuesta participar de todas las actividades por temas de accesibilidad (física, lenguaje)"}]'::jsonb,
|
||
r_show_si_s3_1);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 4 — Vinculación familiar (sensible)
|
||
-- Flujo:
|
||
-- 4.1 ∋ 'Ninguna...' → salta a S10 (oculta S5–S9)
|
||
-- 4.1 = sole 'Hijo menor...' → soloNino: oculta 4.2, 4.3
|
||
-- 4.1 ∋ opciones 2–7 → muestra 4.2, 4.3 (instancias por vínculo)
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint)
|
||
VALUES(gen_random_uuid(),sid,'S4','section','Vinculación familiar',40,false,false,
|
||
'Queremos conocer si estás vinculado/a con algún niño/a (con o sin discapacidad), '
|
||
'adulto con discapacidad y/o adulto mayor dependiente.');
|
||
|
||
-- 4.1: generator de instancias — cada vínculo (2–7) genera un par 4.2/4.3
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,instance_generator)
|
||
VALUES(gen_random_uuid(),sid,'4.1','multiple_choice',
|
||
'¿Cuál de las siguientes vinculaciones familiares tenés?',
|
||
41,true,false,'Marca todas las que correspondan',opts_vinculos,true);
|
||
|
||
-- 4.2: tipo de disc. del familiar — instancia por cada vínculo 2–7
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules,instance_of)
|
||
VALUES(gen_random_uuid(),sid,'4.2','multiple_choice',
|
||
'¿Qué tipo de discapacidades o limitaciones tienen tus familiares vinculados?',
|
||
42,true,false,'Podés marcar más de una opción',opts_tipo_disc,r_hide_instance,'4.1');
|
||
|
||
-- 4.3: dispositivos del familiar — instancia por cada vínculo 2–7
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules,instance_of)
|
||
VALUES(gen_random_uuid(),sid,'4.3','multiple_choice',
|
||
'¿Qué tipo de dispositivos de apoyo utilizan tus familiares vinculados?',
|
||
43,true,false,'Podés marcar más de una opción',opts_disp_familiar,r_hide_instance,'4.1');
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 5 — Responsabilidad y cuidado
|
||
-- soloNino: muestra solo 5.3; oculta 5.1, 5.2, 5.4
|
||
-- Ninguna: oculta toda la sección
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'S5','section','Responsabilidad y cuidado',50,false,false,
|
||
'Queremos conocer quién tiene la responsabilidad del cuidado desde lo económico, '
|
||
'lo logístico y el cuidado activo.',
|
||
r_hide_ning);
|
||
|
||
-- 5.1: oculta cuando Ninguna O soloNino
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'5.1','multiple_choice',
|
||
'¿Cuál es tu rol en el cuidado de los niños y/o personas con discapacidad o dependientes?',
|
||
51,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Proveo financieramente los recursos para su cuidado","label":"Proveo financieramente los recursos para su cuidado"},
|
||
{"value":"Comparto los gastos del cuidado con otros familiares","label":"Comparto los gastos del cuidado con otros familiares"},
|
||
{"value":"Administro los recursos y organizo los servicios necesarios","label":"Administro los recursos y organizo los servicios necesarios"},
|
||
{"value":"Cuando salgo del trabajo me ocupo de su cuidado unas horas","label":"Cuando salgo del trabajo me ocupo de su cuidado unas horas"},
|
||
{"value":"Me ocupo de todas las gestiones relacionadas a la persona","label":"Me ocupo de todas las gestiones relacionadas a la persona"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
-- 5.2: oculta cuando Ninguna O soloNino
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'5.2','multiple_choice',
|
||
'¿En qué momento del día te ocupás de gestionar/organizar el cuidado de las personas a tu cargo?',
|
||
52,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Antes del trabajo","label":"Antes del trabajo"},
|
||
{"value":"Después del trabajo","label":"Después del trabajo"},
|
||
{"value":"Durante el trabajo (llamadas y emergencias)","label":"Durante el trabajo (llamadas y emergencias)"},
|
||
{"value":"En cualquier momento","label":"En cualquier momento"},
|
||
{"value":"Los fines de semana","label":"Los fines de semana"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
-- 5.3: visible también en soloNino (oculta solo cuando Ninguna)
|
||
-- soloNino: después de 5.3 el renderer salta a 8.4 (regla de flujo)
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'5.3','multiple_choice',
|
||
'Durante el tiempo que estás en el trabajo, ¿quién se ocupa del cuidado de las personas a tu cargo?',
|
||
53,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Mi cónyuge","label":"Mi cónyuge"},
|
||
{"value":"Otro familiar","label":"Otro familiar"},
|
||
{"value":"Un(a) cuidador/a contratado/a","label":"Un(a) cuidador/a contratado/a"},
|
||
{"value":"Un centro de estudios o de cuidado","label":"Un centro de estudios o de cuidado"},
|
||
{"value":"Un/a vecino/a","label":"Un/a vecino/a"},
|
||
{"value":"Otro (especificar)","label":"Otro (especificar)"}]'::jsonb,
|
||
r_hide_ning);
|
||
|
||
-- 5.4: oculta cuando Ninguna O soloNino
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'5.4','single_choice',
|
||
'¿Desde hace cuánto cumplís este rol de responsable o cuidador/a?',
|
||
54,false,false,
|
||
'[{"value":"Menos de 1 año","label":"Menos de 1 año"},
|
||
{"value":"1 a 3 años","label":"1 a 3 años"},
|
||
{"value":"3 a 5 años","label":"3 a 5 años"},
|
||
{"value":"Más de 5 años","label":"Más de 5 años"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 6 — Intensidad del cuidado
|
||
-- Toda la sección oculta cuando Ninguna O soloNino
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'S6','section','Intensidad del cuidado',60,false,false,
|
||
'Queremos conocer cuánto tiempo y con qué intensidad cuidás.',r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'6.1','single_choice',
|
||
'¿Cuántos días por semana estás a cargo del cuidado directo, en promedio?',
|
||
61,false,false,
|
||
'Tiempo directo de acompañar o cuidar a la persona vinculada',
|
||
'[{"value":"1–2","label":"1–2"},{"value":"3–4","label":"3–4"},
|
||
{"value":"5–6","label":"5–6"},{"value":"Todos los días","label":"Todos los días"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'6.2','single_choice',
|
||
'Cuando estás a cargo del cuidado, ¿cuántas horas por día dedicás, en promedio?',
|
||
62,false,false,
|
||
'[{"value":"1–2","label":"1–2"},{"value":"3–4","label":"3–4"},
|
||
{"value":"5–6","label":"5–6"},{"value":"Más de 6 horas","label":"Más de 6 horas"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'6.3','multiple_choice',
|
||
'¿En qué momentos del día cuidás principalmente?',
|
||
63,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Antes del trabajo","label":"Antes del trabajo"},
|
||
{"value":"Al llegar del trabajo","label":"Al llegar del trabajo"},
|
||
{"value":"Durante la noche","label":"Durante la noche"},
|
||
{"value":"Los fines de semana","label":"Los fines de semana"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'6.4','single_choice',
|
||
'Además del cuidado directo, ¿cuántas horas al día necesitás estar disponible o de '
|
||
'guardia (aunque no estés cuidando activamente)?',
|
||
64,false,false,
|
||
'[{"value":"1–2","label":"1–2"},{"value":"3–4","label":"3–4"},
|
||
{"value":"5–6","label":"5–6"},{"value":"Más de 6 horas","label":"Más de 6 horas"},
|
||
{"value":"De forma permanente / sin horario","label":"De forma permanente / sin horario"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 7 — Impacto en el trabajo
|
||
-- Toda la sección oculta cuando Ninguna O soloNino
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'S7','section','Impacto en el trabajo',70,false,false,
|
||
'Queremos conocer cómo impacta o ha impactado en tu desempeño laboral el rol de cuidador/a.',
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'7.1','single_choice',
|
||
'¿Cómo describirías tu nivel de descanso cuando te ocupás del cuidado y cómo impacta en tu desempeño?',
|
||
71,false,false,
|
||
'[{"value":"Descanso bien, me siento recuperado/a","label":"Descanso bien, me siento recuperado/a"},
|
||
{"value":"Descanso de forma irregular, pero lo manejo","label":"Descanso de forma irregular, pero lo manejo"},
|
||
{"value":"Me cuesta descansar y mi desempeño se ve afectado con frecuencia","label":"Me cuesta descansar y mi desempeño se ve afectado con frecuencia"},
|
||
{"value":"Descanso muy poco, el agotamiento afecta mi desempeño","label":"Descanso muy poco, el agotamiento afecta mi desempeño"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'7.2','single_choice',
|
||
'En los últimos 3 meses, ¿con qué frecuencia sentiste que el cuidado afectó tu concentración o rendimiento?',
|
||
72,false,false,
|
||
'[{"value":"Nunca o casi nunca","label":"Nunca o casi nunca"},
|
||
{"value":"Algunas veces al mes","label":"Algunas veces al mes"},
|
||
{"value":"Varias veces por semana","label":"Varias veces por semana"},
|
||
{"value":"Casi todos los días","label":"Casi todos los días"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'7.3','single_choice',
|
||
'En el último año, ¿faltaste al trabajo por situaciones relacionadas al cuidado?',
|
||
73,false,false,
|
||
'[{"value":"Nunca","label":"Nunca"},
|
||
{"value":"Pocas veces (1–3 al año)","label":"Pocas veces (1–3 al año)"},
|
||
{"value":"Varias veces (4–10 al año)","label":"Varias veces (4–10 al año)"},
|
||
{"value":"Con frecuencia (más de 10 al año)","label":"Con frecuencia (más de 10 al año)"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'7.4','multiple_choice',
|
||
'¿Qué aspectos de tu vida se ven más afectados por tu rol de cuidador/a?',
|
||
74,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Tiempo libre y ocio","label":"Tiempo libre y ocio"},
|
||
{"value":"Sueño y descanso","label":"Sueño y descanso"},
|
||
{"value":"Vida social y amistades","label":"Vida social y amistades"},
|
||
{"value":"Vida en pareja/familiar","label":"Vida en pareja/familiar"},
|
||
{"value":"Salud física personal","label":"Salud física personal"},
|
||
{"value":"Salud emocional/mental","label":"Salud emocional/mental"},
|
||
{"value":"Desarrollo profesional","label":"Desarrollo profesional"},
|
||
{"value":"Situación económica","label":"Situación económica"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'7.5','multiple_choice',
|
||
'Por tu rol de cuidado, ¿alguna vez tuviste que…?',
|
||
75,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Reducir tu jornada o pasar a medio tiempo","label":"Reducir tu jornada o pasar a medio tiempo"},
|
||
{"value":"Rechazar un ascenso o nueva responsabilidad","label":"Rechazar un ascenso o nueva responsabilidad"},
|
||
{"value":"Declinar viajes, horas extra o capacitaciones","label":"Declinar viajes, horas extra o capacitaciones"},
|
||
{"value":"Cambiar a un puesto menos exigente","label":"Cambiar a un puesto menos exigente"},
|
||
{"value":"Faltar o llegar tarde de forma reiterada","label":"Faltar o llegar tarde de forma reiterada"},
|
||
{"value":"Pensar seriamente en dejar el trabajo","label":"Pensar seriamente en dejar el trabajo"},
|
||
{"value":"Dejar un trabajo anterior","label":"Dejar un trabajo anterior"},
|
||
{"value":"Ninguna de las anteriores","label":"Ninguna de las anteriores"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'7.6','single_choice',
|
||
'Pensando en los próximos 12 meses, ¿qué tan probable es que dejes o reduzcas tu trabajo por razones de cuidado?',
|
||
76,false,false,
|
||
'[{"value":"Nada probable","label":"Nada probable"},
|
||
{"value":"Poco probable","label":"Poco probable"},
|
||
{"value":"Algo probable","label":"Algo probable"},
|
||
{"value":"Muy probable","label":"Muy probable"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 8 — Impacto económico
|
||
-- Ninguna: oculta toda la sección
|
||
-- soloNino: oculta 8.1–8.3, muestra 8.4 (franja salarial)
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'S8','section','Impacto económico',80,false,false,
|
||
'Queremos conocer el impacto económico del cuidado de las personas a tu cargo.',r_hide_ning);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'8.1','single_choice',
|
||
'¿Cuánto estimás que gastás por mes en el cuidado?',
|
||
81,false,false,
|
||
'[{"value":"Menos de 1.000.000","label":"Menos de 1.000.000"},
|
||
{"value":"1.000.000 – 3.000.000","label":"1.000.000 – 3.000.000"},
|
||
{"value":"3.000.001 – 6.000.000","label":"3.000.001 – 6.000.000"},
|
||
{"value":"6.000.001 – 9.000.000","label":"6.000.001 – 9.000.000"},
|
||
{"value":"9.000.001 – 12.000.000","label":"9.000.001 – 12.000.000"},
|
||
{"value":"12.000.001 – 15.000.000","label":"12.000.001 – 15.000.000"},
|
||
{"value":"Más de 15.000.000","label":"Más de 15.000.000"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'8.2','multiple_choice',
|
||
'¿En qué conceptos gastás principalmente el monto expresado?',
|
||
82,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Cuidador/a particular","label":"Cuidador/a particular"},
|
||
{"value":"Centro de día / institución","label":"Centro de día / institución"},
|
||
{"value":"Traslados a centros especializados","label":"Traslados a centros especializados"},
|
||
{"value":"Equipamiento médico / tecnología asistiva","label":"Equipamiento médico / tecnología asistiva"},
|
||
{"value":"Servicios terapéuticos y/o rehabilitación","label":"Servicios terapéuticos y/o rehabilitación"},
|
||
{"value":"Medicamentos","label":"Medicamentos"},
|
||
{"value":"Insumos personales (sondas, pañales, otros)","label":"Insumos personales (sondas, pañales, otros)"},
|
||
{"value":"Otros (especificar)","label":"Otros (especificar)"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'8.3','multiple_choice',
|
||
'¿Cómo sostenés los gastos y responsabilidades del cuidado?',
|
||
83,false,false,'Podés marcar más de una opción',
|
||
'[{"value":"Solo con mi empleo actual","label":"Solo con mi empleo actual"},
|
||
{"value":"Ingresos extraordinarios en horarios no laborales","label":"Ingresos extraordinarios en horarios no laborales"},
|
||
{"value":"Emprendimiento personal/familiar","label":"Emprendimiento personal/familiar"},
|
||
{"value":"Me ayudan mis familiares","label":"Me ayudan mis familiares"},
|
||
{"value":"Me ayudan organizaciones sociales (fundaciones)","label":"Me ayudan organizaciones sociales (fundaciones)"},
|
||
{"value":"Me ayudan vecinos y amigos","label":"Me ayudan vecinos y amigos"},
|
||
{"value":"Eventos de recaudación","label":"Eventos de recaudación"},
|
||
{"value":"Subsidios estatales de la persona cuidada","label":"Subsidios estatales de la persona cuidada"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
-- 8.4: franja salarial — CONFIDENCIAL (analyst-only, nunca en vistas de empresa)
|
||
-- visible en soloNino (oculta solo cuando Ninguna)
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'8.4','single_choice',
|
||
'¿En qué franja salarial mensual te ubicás con tu trabajo en esta empresa?',
|
||
84,true,false,
|
||
'[{"value":"Hasta Gs 3.000.000","label":"Hasta Gs 3.000.000"},
|
||
{"value":"3.000.001 – 5.000.000","label":"3.000.001 – 5.000.000"},
|
||
{"value":"5.000.001 – 8.000.000","label":"5.000.001 – 8.000.000"},
|
||
{"value":"8.000.001 – 12.000.000","label":"8.000.001 – 12.000.000"},
|
||
{"value":"12.000.001 – 15.000.000","label":"12.000.001 – 15.000.000"},
|
||
{"value":"15.000.001 – 18.000.000","label":"15.000.001 – 18.000.000"},
|
||
{"value":"18.000.001 – 25.000.000","label":"18.000.001 – 25.000.000"},
|
||
{"value":"25.000.001 – 50.000.000","label":"25.000.001 – 50.000.000"},
|
||
{"value":"50.000.001 o más","label":"50.000.001 o más"}]'::jsonb,
|
||
r_hide_ning);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 9 — Conciencia organizacional
|
||
-- Ninguna: oculta toda la sección
|
||
-- soloNino: muestra 9.1 y 9.4; oculta 9.2 y 9.3
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'S9','section','Conciencia organizacional',90,false,false,
|
||
'Queremos conocer tu percepción sobre cuánta conciencia hay en la empresa respecto al '
|
||
'cuidado y la discapacidad.',r_hide_ning);
|
||
|
||
-- 9.1: visible también en soloNino
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'9.1','single_choice',
|
||
'¿Sentís que tu empresa conoce o comprende la realidad del cuidado y la discapacidad de su gente?',
|
||
91,false,false,
|
||
'[{"value":"Sí, me siento acompañado/a","label":"Sí, me siento acompañado/a"},
|
||
{"value":"Parcialmente, hay cierta comprensión","label":"Parcialmente, hay cierta comprensión"},
|
||
{"value":"No, es algo bastante invisible","label":"No, es algo bastante invisible"},
|
||
{"value":"Nunca hemos tocado el tema","label":"Nunca hemos tocado el tema"}]'::jsonb,
|
||
r_hide_ning);
|
||
|
||
-- 9.2: oculta cuando Ninguna O soloNino; max 3 selecciones
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint,options,conditional_rules,max_select)
|
||
VALUES(gen_random_uuid(),sid,'9.2','multiple_choice',
|
||
'¿Qué apoyos de la empresa te ayudarían más?',
|
||
92,false,false,'Marcá hasta 3 opciones',
|
||
'[{"value":"Flexibilidad horaria o trabajo remoto","label":"Flexibilidad horaria o trabajo remoto"},
|
||
{"value":"Apoyo económico o convenios/descuentos","label":"Apoyo económico o convenios/descuentos"},
|
||
{"value":"Acceso a beneficios para terapias o salud","label":"Acceso a beneficios para terapias o salud"},
|
||
{"value":"Contención/apoyo emocional o psicológico","label":"Contención/apoyo emocional o psicológico"},
|
||
{"value":"Capacitación y autocuidado","label":"Capacitación y autocuidado"},
|
||
{"value":"Redes de apoyo / grupos de pares","label":"Redes de apoyo / grupos de pares"},
|
||
{"value":"Información sobre recursos y servicios","label":"Información sobre recursos y servicios"}]'::jsonb,
|
||
r_hide_ning_sn,3);
|
||
|
||
-- 9.3: oculta cuando Ninguna O soloNino
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'9.3','single_choice',
|
||
'¿Estarías dispuesto/a a participar en un grupo de apoyo para cuidadores dentro de la empresa?',
|
||
93,false,false,
|
||
'[{"value":"Sí, definitivamente","label":"Sí, definitivamente"},
|
||
{"value":"Tal vez, si hay más personas en la misma situación","label":"Tal vez, si hay más personas en la misma situación"},
|
||
{"value":"No por ahora","label":"No por ahora"},
|
||
{"value":"Prefiero mantenerlo en privado","label":"Prefiero mantenerlo en privado"}]'::jsonb,
|
||
r_hide_ning_sn);
|
||
|
||
-- 9.4: visible también en soloNino
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,options,conditional_rules)
|
||
VALUES(gen_random_uuid(),sid,'9.4','single_choice',
|
||
'¿Estarías dispuesto/a a ser voluntario/a en iniciativas y/o redes de apoyo?',
|
||
94,false,false,
|
||
'[{"value":"Sí","label":"Sí"},{"value":"No","label":"No"}]'::jsonb,
|
||
r_hide_ning);
|
||
|
||
-- ════════════════════════════════════════════════════════
|
||
-- SECCIÓN 10 — Comentarios adicionales
|
||
-- Siempre visible (es el destino del salto "Ninguna")
|
||
-- ════════════════════════════════════════════════════════
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint)
|
||
VALUES(gen_random_uuid(),sid,'S10','section','Comentarios adicionales',100,false,false,
|
||
'Espacio para comentarios, sugerencias o tus datos (confidenciales) para seguir profundizando.');
|
||
|
||
-- 10.1: texto libre, opcional
|
||
INSERT INTO public.questions(id,survey_id,code,type,prompt,position,is_sensitive,required,hint)
|
||
VALUES(gen_random_uuid(),sid,'10.1','text_long',
|
||
'¿Te gustaría dejar un comentario o sugerencia especial? (opcional)',
|
||
101,false,false,'Opcional.');
|
||
|
||
END LOOP;
|
||
|
||
END $seed$;
|