Files
motor-de-encuestas/sprints/sprint-3-infra/ETAPA_3C_PROMPT.md
2026-06-10 16:55:41 -03:00

6.7 KiB

ETAPA 3C — Texto de consentimiento + dos nuevas encuestas piloto

1. Objetivo

Dos cambios independientes:

  1. Actualizar el texto de la pantalla de consentimiento para usar el nombre de empresa dinámico desde la DB y el nuevo wording aprobado.
  2. Insertar en el seed dos nuevas organizaciones y dos nuevos surveys (InQuality y Fundación Solidaridad) como encuestas de espacio de pruebas reales.

2. Contexto previo

  • El nombre de empresa se lee de surveys.brand_config.org_name (JSONB), no de organizations.name. El formulario ya tiene acceso a ese valor via brand_config.
  • El survey actual (30000000-...-0001) tiene brand_config.org_name = "InQuality".
  • El componente que muestra la pantalla de consentimiento es ConsentScreen, llamado desde survey-form.tsx con brandConfig={survey.brand_config}.
  • Las dos nuevas encuestas son para uso real en espacio de pruebas — los encuestados serán notificados cuando la plataforma madure.

3. DECISIONES YA TOMADAS — no consultar de nuevo

  • Organizaciones separadas para cada encuesta — cada una con su propio org_id.
  • Los surveys nuevos tienen status='live' para que sean accesibles por UUID.
  • El survey demo existente (30000000-...-0001) NO se toca — sigue funcionando.
  • Los nuevos UUIDs siguen el patrón del seed: 10000000-...-0002 para org InQuality real, 10000000-...-0003 para Fundación Solidaridad, y surveys 30000000-...-0002 y 30000000-...-0003 respectivamente.
  • brand_config.org_name es el campo que alimenta el texto dinámico del consentimiento.

4. Cambio 1 — Texto del consentimiento

4.1 Texto actual (aproximado)

Diagnóstico interno de [org_name]: tus respuestas ayudan a la empresa a entender
la realidad de las personas que cuidan a familiares con discapacidad o adultos
mayores, para diseñar apoyos más adecuados. Solo se trabaja con datos agregados
— nunca accede a respuestas individuales.

Estudio país (opcional): tus respuestas anonimizadas contribuyen a un mapeo nacional
sobre la economía del cuidado en Paraguay. Los datos se procesan de forma
irreversiblemente desvinculada de cualquier empresa o persona.

4.2 Texto nuevo

Diagnóstico interno de [ORG_NAME]: Tus respuestas ayudan a la empresa, en alianza
con Fundación Solidaridad, a entender la realidad de las personas que cuidan a
familiares con discapacidad o adultos mayores, para diseñar apoyos más adecuados.
Solo se trabaja con datos agregados — nunca accede a respuestas individuales.

Estudio país (opcional): Tus respuestas serán anónimas y contribuyen a un mapeo
nacional sobre la economía del cuidado en Paraguay. Los datos se procesan de manera
que no pueden asociarse a ninguna empresa ni persona.

[ORG_NAME] = brand_config.org_name — ya disponible en el componente. Las palabras en negrita son: el nombre de la empresa, "datos agregados", "anónimas". Mantener el mismo patrón de negritas que el texto actual.

4.3 Archivo a modificar

Buscar en ConsentScreen o donde esté el JSX que renderiza estos dos párrafos. Solo cambiar el texto — no la estructura ni el estilo.


5. Cambio 2 — Dos nuevas organizaciones y surveys en seed.sql

5.1 Organización InQuality

INSERT INTO public.organizations (id, name, sector, size_bucket)
VALUES (
  '10000000-0000-0000-0000-000000000002',
  'InQuality',
  'Consultoría/Tecnología',
  '1-50'
) ON CONFLICT (id) DO UPDATE SET
  name = EXCLUDED.name,
  sector = EXCLUDED.sector,
  size_bucket = EXCLUDED.size_bucket;

5.2 Organización Fundación Solidaridad

INSERT INTO public.organizations (id, name, sector, size_bucket)
VALUES (
  '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;

5.3 Survey InQuality

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-000000000002',
  '10000000-0000-0000-0000-000000000002',
  'Mapeo de Cuidadores — 2026',
  'live',
  true,
  'sensible',
  'confidencial',
  'A',
  '20000000-0000-0000-0000-000000000001',
  '{"org_name": "InQuality", "branch_name": "Equipo InQuality", "branch_city": "Asunción"}',
  5
) ON CONFLICT (id) DO UPDATE SET
  brand_config = EXCLUDED.brand_config,
  status = EXCLUDED.status;

5.4 Survey Fundación Solidaridad

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-000000000003',
  '10000000-0000-0000-0000-000000000003',
  'Mapeo de Cuidadores — 2026',
  'live',
  true,
  'sensible',
  'confidencial',
  'A',
  '20000000-0000-0000-0000-000000000001',
  '{"org_name": "Fundación Solidaridad", "branch_name": "Equipo Fundación", "branch_city": "Asunción"}',
  5
) ON CONFLICT (id) DO UPDATE SET
  brand_config = EXCLUDED.brand_config,
  status = EXCLUDED.status;

5.5 Notas sobre el seed

  • Usar ON CONFLICT (id) DO UPDATE para que el seed sea idempotente.
  • El consent_version_id referencia el consentimiento existente (20000000-0000-0000-0000-000000000001) — mismo texto para ambas.
  • Las URLs resultantes serán:
    • InQuality: ?s=30000000-0000-0000-0000-000000000002
    • Fundación Solidaridad: ?s=30000000-0000-0000-0000-000000000003

6. Entregables (DoD)

  • Texto del consentimiento actualizado en el componente con el nuevo wording.
  • [ORG_NAME] dinámico desde brand_config.org_name.
  • Negritas correctas: nombre de empresa, "datos agregados", "anónimas".
  • Dos nuevas organizaciones en seed.sql con ON CONFLICT.
  • Dos nuevos surveys en seed.sql con ON CONFLICT.
  • Build exitoso.
  • git diff --name-only HEAD en scope.

7. Qué reportar

Verificado:
- Texto de consentimiento actualizado ✓
- org_name dinámico ✓ (valor en demo: "InQuality" o "Empresa Demo")
- Seed actualizado con 2 orgs + 2 surveys ✓
- ON CONFLICT en todos los nuevos INSERTs ✓
- Build exitoso ✓
- Diff en scope ✓

URLs de los nuevos surveys:
- InQuality: ?s=30000000-0000-0000-0000-000000000002
- Fundación Solidaridad: ?s=30000000-0000-0000-0000-000000000003

Asumido:
- [decisiones de implementación]

8. Qué NO hacer

  • No tocar el survey demo existente (30000000-...-0001).
  • No cambiar la estructura de brand_config — solo el texto del componente.
  • No re-seedear la DB de producción — solo actualizar seed.sql.
  • No cambiar estilos ni layout del ConsentScreen.
  • No tocar dashboard ni RPCs.