6.7 KiB
6.7 KiB
ETAPA 3C — Texto de consentimiento + dos nuevas encuestas piloto
1. Objetivo
Dos cambios independientes:
- Actualizar el texto de la pantalla de consentimiento para usar el nombre de empresa dinámico desde la DB y el nuevo wording aprobado.
- 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 deorganizations.name. El formulario ya tiene acceso a ese valor viabrand_config. - El survey actual (
30000000-...-0001) tienebrand_config.org_name = "InQuality". - El componente que muestra la pantalla de consentimiento es
ConsentScreen, llamado desdesurvey-form.tsxconbrandConfig={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-...-0002para org InQuality real,10000000-...-0003para Fundación Solidaridad, y surveys30000000-...-0002y30000000-...-0003respectivamente. brand_config.org_namees 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 UPDATEpara que el seed sea idempotente. - El
consent_version_idreferencia 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
- InQuality:
6. Entregables (DoD)
- Texto del consentimiento actualizado en el componente con el nuevo wording.
[ORG_NAME]dinámico desdebrand_config.org_name.- Negritas correctas: nombre de empresa, "datos agregados", "anónimas".
- Dos nuevas organizaciones en
seed.sqlconON CONFLICT. - Dos nuevos surveys en
seed.sqlconON CONFLICT. - Build exitoso.
git diff --name-only HEADen 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.