Herramienta interna
113
Listas
20
Pendientes
24-04-2026 13:50
Ultima actualizacion
Plan maestro del proyecto
Esta vista lee directamente docs/plan-maestro.md para que podamos seguir el estado real
del trabajo mientras implementamos.
Plan Maestro de NewDescargos
Última actualización: 2026-04-23
Plan Activo
Fase 0. Gobierno documental y alineación base
- Estado: en curso
- Leer semánticamente la Página 1 del flujo (
Landing de Triage). - Leer semánticamente la Página 2 del flujo (
Formulario de Elegibilidad). - Leer completo el documento
Especificación funcional del flujo de adquisición — Descargos. - Leer
Documento Maestro de Descargos_Parte 1. - Leer
Documento Maestro de Descargos_Parte 2. - Registrar la decisión vigente de negocio: el hero ya no lleva video.
- Registrar la decisión vigente de diseño: no usar
descargos.betta.clcomo instrucción visual activa. - Crear este plan maestro como documento vivo del proyecto.
- Incorporar al plan la lógica operativa formal del flujo completo: Página 1 → Página 2 → Página 3 → Página 4 → post-pago.
- Mantener este plan actualizado al cierre de cada tarea relevante.
Fase 0.3. Mensajería y credenciales internas
- Estado: en curso
- Analizar
Betta.MessagingdeArtService2026como referencia directa para NewDescargos. - Crear el proyecto
Betta.Messagingdentro de la solución e integrarlo aBetta.Descargos.Service. - Mantener la implementación base del sender, renderer, opciones y DI alineada con
ArtService2026. - Diseñar templates de correo para recuperación de contraseña y estados de pago siguiendo la identidad visual vigente de NewDescargos.
- Integrar un flujo propio de
Forgot passwordyReset passwordsobre Identity dentro del MVC. - Conectar notificaciones automáticas para salida a pago y pago confirmado sobre leads del flujo público.
- Reemplazar el
LogoHtmltemporal por la URL final del logo en CDN cuando esté disponible. - Configurar
SMTP2GOcon credenciales base y remitente por ambiente. - Crear perfiles de publicación
Development,QAyProductioncon despliegue aD:\Descargos\[EnvironmentName]yASPNETCORE_ENVIRONMENTcorrespondiente. - Sacar del repo las credenciales versionadas y formalizar una estrategia de secretos para desarrollo local y deploy.
Fase 0.1. Arquitectura compartida
- Estado: en curso
- Decidir la creación de
Betta.Descargos.Sharedantes de seguir construyendo el flujo. - Definir que
Sharedcontendrá DTOs, interfaces y enums reutilizables. - Definir que
Sharedno debe contener lógica de negocio ni comportamiento. - Crear la estructura base del proyecto y conectarla a la solución.
- Agregar referencias iniciales desde
MvcyServicehaciaShared. - Validar compilación de la solución con
Release. - Empezar a usar
Sharedcomo punto natural para contratos transversales nuevos. - Llevar a
Sharedlos contratos anémicos necesarios para la clasificación y recomendación del flujo público. - Llevar a
Sharedlos contratos anémicos específicos que aparezcan al implementar Checkout y post-pago.
Fase 0.2. Instrumentación interna de desarrollo
- Estado: en curso
- Definir la necesidad de un acceso visible en desarrollo para seguir el estado real del proyecto.
- Crear una vista interna que renderice
docs/plan-maestro.md. - Mostrar los checks completados en verde y los pendientes como no completados.
- Agregar un acceso visible solo en ambiente
Development. - Integrar
Plan maestroal mismo menú superior del landing, condicionado aDevelopment. - Agregar herramientas internas en
Plan maestropara enviar templates de correo de prueba y abrir el login privado. - Extender la disponibilidad de
Plan maestroaQApara validar remitentes, templates y flujos de credenciales por ambiente. - Extender este menú interno a otras herramientas de seguimiento si el proyecto lo necesita.
Fase 1. Página 1 — Landing de triage
- Estado: completada
- Reorientar la página a un único objetivo: avanzar al formulario de elegibilidad.
- Mantener una top bar del estilo legacy, pero enfocada en las secciones reales del landing y sin salidas laterales al flujo.
- Quitar el video del hero sin rehacer el mensaje base del legacy.
- Mantener el copy legacy en los bloques que ya estaban bien y ajustar solo tono u orden donde sí aportaba.
- Dejar la narrativa pública en este orden: hero, confianza rápida, consecuencia, qué obtienes, así funciona, precios, CTA final.
- Eliminar del flujo público los elementos que contradicen la especificación operativa: formulario largo, WhatsApp flotante, FAQ, testimonios y cierres redundantes.
- Ajustar precios a la versión funcional vigente: Estándar
$199.000, Express$329.000. - Apuntar todos los CTA válidos de Página 1 a la Página 2.
Fase 2. Página 2 — Formulario de elegibilidad
- Estado: completada
- Crear una vista dedicada para elegibilidad, separada del formulario de contacto actual.
- Implementar solo los dos inputs obligatorios del flujo: fecha de notificación y WhatsApp.
- Agregar validaciones de fecha y formato de WhatsApp con feedback inmediato.
- Mantener el CTA deshabilitado hasta tener inputs válidos.
- Guardar los datos mínimos del flujo en sesión para preparar la clasificación.
- Restringir el acceso al paso siguiente cuando no existen datos válidos provenientes de Página 2.
- Calcular
días transcurridossegún la fecha de notificación y la fecha del sistema. - Clasificar el caso con estas reglas operativas: día
0–1, día2, día3–4, día5+. - Registrar internamente el estado del usuario: días calculados, elegibilidad y recomendación.
- Reemplazar la salida provisional posterior al submit por la ruta real del siguiente paso.
- Definir la salida funcional para casos no elegibles (
día 5+) como una página propia que corta el proceso actual. - Compactar la página para concentrar decisión y formulario dentro del primer viewport en desktop.
- Reemplazar el selector nativo de fecha en desktop por un calendario visual más grande y consistente con la UI.
- Alinear la escala del título de elegibilidad con la jerarquía visual usada en recomendación y checkout.
- Agregar un estado de análisis bloqueante en elegibilidad con espera mínima perceptible antes de mostrar la recomendación.
Fase 3. Página 3 — Recomendación
- Estado: completada
- Crear el contrato de sesión que transporte desde Página 2: días transcurridos, elegibilidad, recomendación y datos mínimos del contacto.
- Implementar guardas de navegación para que Página 3 solo sea accesible desde Página 2 con datos válidos.
- Implementar la Página 3A para casos
día 0–1. - Dejar
Standardpreseleccionado en 3A y ofrecerExpresscomo alternativa secundaria. - Implementar la Página 3B para casos
día 2. - Presentar en 3B
Expresscomo recomendación yStandardcomo opción condicionada a entrega de antecedentes el mismo día. - Implementar la consecuencia operativa de 3B en el copy funcional: si compra
Standardy no cumple, requiere upgrade aExpressy pago de diferencia antes de iniciar el trabajo. - Implementar la Página 3C para casos
día 3–4. - Dejar
Expresscomo única opción disponible y no editable en 3C. - Persistir el plan seleccionado hacia Página 4.
- Mantener Página 3 sin datos adicionales ni recálculo de lógica.
- Reemplazar la pantalla provisional
NextStepPendingpor la experiencia real de recomendación. - Mover el paso del wizard dentro del bloque principal para reducir el espacio muerto superior.
- Agregar
Fecha de entregadinámica según el plan visible o seleccionado. - Ajustar el caso
Expressúnico para mostrar simultáneamenteÚnico para tu casoyRecomendado para tu caso. - Reducir el tamaño visual de los títulos largos de recomendación para evitar sensación de exceso de énfasis.
- Reubicar el encabezado de recomendación fuera de la columna derecha para mantener mejor balance y evitar scroll innecesario.
- Dejar un acceso directo desde recomendación a checkout para validar el flujo aunque el submit principal falle.
- Reemplazar los CTAs globales de Página 3 por un botón propio en cada card de plan.
- Hacer que el click en
Elegir este planabra checkout con ese plan ya marcado. - Registrar en el historial del lead la selección de plan hecha desde Página 3 como evento de tracking asociado al
LeadId. - Reubicar el CTA
Elegir este plandentro de cada card como acción compacta, alineada arriba a la derecha sobre el precio. - Ordenar el callout lateral de recomendación con una jerarquía interna más clara para que las condiciones operativas largas se lean mejor.
- Alinear la selección visual inicial de Página 3 con el plan recomendado cuando el usuario aún no ha elegido explícitamente.
- Llevar el estilo del card seleccionado de Página 3 al mismo lenguaje sobrio usado en checkout.
- Separar en Página 3 la recomendación del sistema de la elección posterior del usuario en checkout, destacando visualmente solo el plan recomendado.
- Permitir badges verdes configurables por card en Página 3 para reforzar matices de decisión sin cambiar la recomendación del sistema.
Fase 4. Página 4 — Checkout
- Estado: en curso
- Dejar un paso 4 provisional enlazado desde Página 3 mientras se implementa el checkout real.
- Investigar documentación oficial de Mercado Pago y criterios actuales de checkout confiable para orientar la UI del checkout.
- Reemplazar el paso 4 provisional por un
guest checkoutvisual alineado con Mercado Pago. - Arrastrar el plan seleccionado desde Página 3.
- Pedir solo los campos definidos como datos previos al pago: nombre, email y confirmación de email.
- Validar formato de email y coincidencia exacta entre email y confirmación.
- Mantener el selector de plan visible dentro del checkout para revisar o cambiar la opción desde ese paso.
- Respetar en checkout solo las opciones realmente habilitadas según el tipo de caso.
- Mantener visible antes del pago el plan, el precio y la fecha estimada de entrega.
- Explicitar que el pago se completará en Mercado Pago y no en este formulario previo.
- Validar coherencia entre el plan elegido y las reglas provenientes de Página 3.
- Dejar un paso explícito posterior al submit del checkout para validar el traspaso hacia Mercado Pago sin refresh silencioso.
- Compactar la pantalla provisional de salida a pago en una composición de dos columnas más legible y menos alta.
- Dejar un acceso secundario desde checkout para validar el siguiente paso aun sin integración real de la pasarela.
- Ajustar el título del checkout a
Proceder al pagoy alinearlo visualmente con la escala de Página 3. - Agregar aceptación obligatoria de términos y condiciones con una página legal temporal de trabajo.
- Arrastrar explícitamente el teléfono capturado en elegibilidad hacia el borde previo a pago como dato visible del traspaso.
- Mantener el selector de plan visible y editable dentro del checkout para todas las llegadas desde recomendación.
- Registrar también en historial del lead los cambios de plan hechos desde checkout cuando el usuario modifica su selección.
- Destacar con más claridad y elegancia la tarjeta seleccionada dentro del checkout.
- Hacer que al entrar a checkout se destaque siempre el plan recién seleccionado en recomendación, por encima de cualquier borrador previo.
- Sincronizar en checkout el estado visual del card seleccionado con el plan realmente arrastrado desde recomendación, tanto al cargar como al cambiarlo.
- Hacer más sobria la presentación del bloque de términos y condiciones dentro del checkout.
- Impedir pegado y arrastre en ambos campos de email para forzar ingreso manual.
- Abrir términos y condiciones dentro de un modal con scroll para no sacar al usuario del checkout.
- Ajustar el destacado del plan seleccionado en checkout a una elevación sobria, sin acento rojizo tipo glow.
- Definir técnicamente si la integración real saldrá por
Checkout Proo porCheckout Bricksde Mercado Pago. - Conectar la creación de preferencia o la inicialización del Brick de Mercado Pago.
- Persistir leads del flujo público con teléfono, IP, fecha de cargos, historial base y preparación para asociación de pago.
- Registrar en historial del lead la aceptación de términos dentro del checkout.
- Registrar de forma explícita la salida a pago como hito separado del checkout.
- Registrar pago exitoso, plan contratado, datos del cliente y timestamp de compra.
- Guardar el estado de compra como
pagado. - Mostrar confirmación inmediata, plan contratado e instrucción clara del siguiente paso.
- Preparar el envío automático del correo de confirmación con link al formulario post-pago.
Fase 5. Post-pago y activación operativa
- Estado: pendiente
- Mantener el formulario post-pago accesible solo mediante link enviado por correo.
- Asociar el formulario completado con la compra correspondiente.
- Registrar el timestamp de recepción completa de antecedentes.
- Dejar explícito que el SLA comienza solo cuando el pago está confirmado y los antecedentes están completos.
- Mantener el estado actual con Google Form sin romper la futura migración a plataforma propia.
- Transformar el lead en cliente cuando exista la administración interna aprobada.
Fase 6. Calidad, coherencia y cierre
- Estado: pendiente
- Verificar que el flujo completo tenga navegación controlada y no permita saltos manuales inválidos entre etapas.
- Verificar mobile y desktop con foco en claridad, urgencia y baja fricción.
- Validar que el copy visible siga alineado con los insumos funcionales vigentes y con las decisiones ya tomadas sobre legacy.
- Confirmar que la implementación respete el sistema visual propio del proyecto.
- Confirmar que los textos visibles mantengan UTF-8 correcto.
Confirmación Semántica del Flujo
Qué cambió con los documentos maestros
Los Documento Maestro de Descargos reforzaron cuatro criterios operativos que ya deben gobernar el proyecto:
- Descargos se vende como un entregable jurídico productizado, no como una defensa integral abierta.
- El mensaje principal debe ser seguridad y seriedad; la rapidez es crítica, pero secundaria al control del riesgo.
- El funnel debe sentirse lineal, claro y con mínima fricción; no puede parecer una burocracia digital.
- La calidad no se negocia ni puede sacrificarse para “hacer pasar” casos que el sistema ya no puede operar bien.
Qué ya cuadra con lo implementado
- Página 1 funciona como landing de triage y empuja a Página 2 sin capturar datos.
- Página 2 ya usa los dos inputs mínimos correctos, clasifica el caso y persiste el estado del flujo.
- Página 3 ya existe con sus tres variantes funcionales (
3A,3B,3C). - Ya existe una página propia para casos no elegibles (
día 5+) que corta el proceso actual con un mensaje claro. - La UI de Página 2 y Página 3 ya quedó compactada para que la decisión principal entre mejor en pantalla.
- El checkout ya existe como
guest checkoutvisual con resumen visible, fecha de entrega y datos previos al pago. - El checkout ya exige aceptación de términos y cuenta con una página legal temporal para no dejar ese punto implícito.
- El flujo público ya crea un lead persistente al verificar el caso y deja trazabilidad base de selección, checkout y salida a pago.
- La trazabilidad de selección de plan ahora distingue si la elección ocurrió en recomendación o en checkout y si existió cambio respecto de la selección previa.
- El proyecto ya usa
Sharedpara DTOs y enums transversales del flujo público. - El plan maestro sigue visible desde la UI en desarrollo.
Qué todavía no cuadra
- La integración real con Mercado Pago todavía no está conectada.
- El pago online, la confirmación automática y el correo post-pago todavía no están implementados.
- El formulario post-pago sigue fuera del proyecto propio.
- La conversión del lead a cliente sigue pendiente hasta construir la administración interna.
Ambigüedades Abiertas
- No quedan ambigüedades críticas para el flujo público hasta Página 3.
- La siguiente definición material pendiente es si la integración con Mercado Pago saldrá por
Checkout Pro(redirección) oCheckout Bricks(embebido).
Reglas de Mantenimiento de Este Plan
- Este documento se actualiza cada vez que se completa, cambia, agrega, elimina o bloquea una tarea relevante del proyecto.
- Si una tarea cambia de alcance, primero se corrige este plan y luego se implementa el cambio.
- Si aparece una nueva dependencia funcional o técnica, debe quedar anotada aquí.
- El estado del plan debe reflejar la realidad actual del proyecto, no una intención antigua.
Decisiones Vigentes
- El sistema visual de NewDescargos se considera suficiente y vigente; no debe reintroducirse una dependencia de diseño hacia
descargos.betta.cl. - El hero de Página 1 no lleva video.
- El formulario de elegibilidad debe construirse usando el PDF de Página 2 como especificación de UI mínima.
- El campo de fecha de elegibilidad usa un datepicker propio en desktop porque el calendario nativo no entrega control visual suficiente.
- La lógica operativa del flujo completo debe implementarse según el documento
Especificación funcional del flujo de adquisición — Descargos. Betta.Descargos.Sharedes el lugar para DTOs, interfaces y enums transversales sin lógica de negocio.- El caso no elegible (
día 5+) se resuelve con una página propia que informa que el proceso actual no puede continuar. - El checkout se diseña como
guest checkouty debe mantener coherencia con una integración futura de Mercado Pago. - La mensajería de NewDescargos toma como base técnica el proyecto
Betta.MessagingdeArtService2026, adaptando solo branding, templates e integración local. - Las migraciones de EF Core deben generarse con
dotnet ef; no deben crearse manualmente como práctica normal. - Este plan maestro es el documento operativo que acompaña el avance real del proyecto.
Registro de Cambios
2026-04-22
- Se revisaron semánticamente los PDFs de Página 1 y Página 2.
- Se creó el plan maestro vivo del proyecto.
- Se registró la nueva regla de trabajo: actualizar este documento en cada tarea relevante.
- Se definió la creación de
Betta.Descargos.Sharedcomo proyecto transversal anémico para DTOs, interfaces y enums reutilizables. - Se creó la estructura base de
Betta.Descargos.Shared, se conectó a la solución y se validó compilación enRelease. - Se creó una vista interna de desarrollo para revisar el plan maestro desde la UI del proyecto.
- Se implementó la nueva Página 1 de triage alineada al flujo público vigente.
- Se implementó la Página 2 de elegibilidad con validación mínima y persistencia en sesión.
- Se ajustó la top bar de la Página 1 para navegar a las secciones reales del landing y mostrar
Plan maestroen el mismo menú solo enDevelopment. - Se corrigió el copy del hero para volver al wording del legacy y mantener solo el reemplazo del video.
- Se redujo el espacio vertical entre la top bar y el inicio del hero para compactar mejor la entrada de la landing.
- Se corrigió el centrado vertical excesivo del hero para subir el bloque principal y eliminar el vacío superior sobrante.
- Se reordenó la Página 1 para dejar
Así funcionaantes dePrecio claro desde el inicio. - Se devolvió la sección de consecuencias al wording del legacy para no rehacer un bloque que ya estaba bien.
- Se ajustó el tono del bloque
Sin vueltas. Sin letra chica...a un punto medio entre legacy y el nuevo enfoque, manteniendo sus bullets. - Se leyó completo el documento
Especificación funcional del flujo de adquisición — Descargos. - Se leyó completo el contexto de negocio en
Documento Maestro de Descargos_Parte 1yParte 2. - Se implementó la clasificación operativa del caso desde Página 2.
- Se implementó la Página 3 real con variantes
3A,3By3C. - Se agregó la página de no elegible para
día 5+con corte explícito del proceso actual. - Se compactaron las páginas de elegibilidad y recomendación para reducir scroll innecesario en desktop.
- Se integró
flatpickrde forma local para mejorar la selección de fecha en elegibilidad y unificar el tamaño visual del calendario. - Se alineó el tamaño del título de elegibilidad con la jerarquía visual de las otras páginas del flujo.
- Se agregó un overlay bloqueante de
Analizandocon espera mínima y puntos rebotando al enviar elegibilidad para reforzar la sensación de trabajo en curso. - Se acortó la espera perceptible del overlay de análisis en elegibilidad a
1.5 segundospara mantener sensación de trabajo sin frenar de más el avance. - Se redujo la opacidad del overlay de análisis en elegibilidad para dejar más visible el contenido de fondo mientras el flujo queda bloqueado.
- Se volvió a ensanchar la cabecera de recomendación para que título y subtítulo usen todo el ancho útil y se redujo un poco su escala visual.
- Se alivianó el overlay de
Analizandopara que el fondo se siga leyendo mejor, apoyándose más en desenfoque que en opacidad. - Se eliminó el velo blanco del overlay de
Analizando, dejando solo el desenfoque del fondo con la pantalla aún bloqueada. - Se eliminó también el panel blanco central del estado
Analizandoy se redujo el blur para que el efecto sea mucho más liviano. - Se movió el paso del wizard dentro del bloque principal de decisión en Página 3.
- Se agregó la fecha de entrega visible y dinámica según plan en Página 3.
- Se ajustó el tamaño del heading de la variante intermedia de recomendación y se corrigió el binding del submit para evitar refresh silencioso.
- Se reubicó el encabezado de recomendación sobre ambas columnas para corregir el desbalance hacia la derecha.
- Se dejó un acceso directo desde recomendación hacia checkout usando el plan actualmente visible.
- Se cambió Página 3 para que cada card de plan tenga su propio botón
Elegir este plany el checkout abra con esa selección ya marcada. - Se reposicionó el CTA
Elegir este plandentro de la card para que quede más angosto y alineado arriba a la derecha sobre el precio. - Se reordenó el callout lateral de recomendación con un label operativo para mejorar la lectura de condiciones largas como la del caso intermedio.
- Se corrigió la lógica de selección inicial en Página 3 para que, si el usuario aún no ha elegido, quede destacado el plan recomendado y no el plan por defecto.
- Se llevó el card seleccionado de Página 3 al mismo estándar visual sobrio usado en checkout.
- Se separó formalmente en Página 3 la recomendación del sistema de la elección posterior en checkout, dejando el destaque visual reservado solo para el plan recomendado y limpiando badges repetidos.
- Se agregó soporte para badges verdes configurables por card en Página 3 y se usó en la opción
Expressdel caso temprano con el mensajePero mientras antes mejor. - Se eliminaron los botones globales
Continuar a pagoeIr directo al checkoutdel paso de recomendación. - Se reemplazó el paso 4 provisional por un guest checkout visual con resumen claro, fecha estimada de entrega y datos previos al pago.
- Se agregó una pantalla explícita de traspaso a pago para validar el flujo completo antes de conectar Mercado Pago.
- Se reorganizó la pantalla provisional de salida a pago en dos columnas con resumen más compacto y mejor distribución vertical.
- Se agregó una salida secundaria desde checkout para revisar el paso siguiente aunque la pasarela aún no esté conectada.
- Se investigó el estándar actual de checkout confiable con foco en Mercado Pago y checkout como invitado.
- Se modeló persistencia base para leads del flujo público con entidad común (
CreatedAtUtc,IsActive), historial del lead y pagos asociados para la futura integración real. - Se conectó la captura del lead al submit de elegibilidad para guardar teléfono, IP y fecha de cargos, y se registró trazabilidad adicional al confirmar plan, completar checkout y preparar la salida a pago.
- Se ajustó el checkout para usar el título
Proceder al pago, exigir aceptación de términos y exponer una página legal temporal. - Se dejó visible en el borde de pago el teléfono arrastrado desde elegibilidad como dato que viajará al formulario de la pasarela.
- Se dejó el selector de plan del checkout siempre visible para mantener el cambio de opción dentro de ese paso.
- Se reforzó el tracking del lead para registrar selección de plan con contexto de origen (
recomendaciónocheckout) y cambio respecto de la selección previa. - Se reforzó el tracking del lead para registrar también aceptación de términos en checkout y salida a pago como hitos propios del historial.
- Se reforzó visualmente la tarjeta seleccionada del checkout para que la opción activa se note mejor sin perder sobriedad.
- Se corrigió la prioridad del plan al entrar a checkout para que la selección recién hecha en recomendación no quede tapada por un borrador anterior.
- Se reforzó la sincronización inicial y dinámica del checkout para que la elevación del card seleccionado coincida siempre con el plan realmente traído desde recomendación.
- Se reemplazó el realce rojizo del plan activo en checkout por una elevación más sobria basada en sombra y borde neutro.
- Se afinó el realce del plan activo en checkout con borde más oscuro y una sombra un poco más profunda para mejorar lectura sin perder elegancia.
- Se agregó un desplazamiento vertical de
5pxhacia arriba al plan activo en checkout para reforzar la sensación de selección. - Se acotó la sombra del plan activo en checkout para que la elevación se perciba más corta y sutil, no tan desplazada.
- Se agregó un zoom leve al plan activo en checkout para reforzar la selección sin volverlo estridente.
- Se suavizó visualmente el bloque de términos del checkout para integrarlo mejor al formulario y bajar su sensación de invasividad.
- Se bloqueó el pegado y arrastre en los dos campos de email del checkout, dejando mensajes claros para forzar escritura manual.
- Se llevó el contenido de términos y condiciones a un modal con scroll dentro del checkout, manteniendo la página legal solo como respaldo.
- Se agregó la instrucción documental que obliga a crear migraciones con
dotnet efy se incorporó al contexto del skill del proyecto. - Se creó el proyecto
Betta.Messagingdentro de la solución tomando como referencia directa la implementación deArtService2026. - Se integró la mensajería al backend de NewDescargos para recuperación de contraseña sobre Identity y para notificaciones automáticas a leads en hitos del pago.
- Se materializaron páginas propias de
Forgot password,Reset passwordy sus confirmaciones dentro del área Identity del MVC. - Se dejó el branding de correo listo para recibir la URL final del logo en CDN mediante configuración.
2026-04-24
- Se agrego logging operacional mas fino al flujo de Mercado Pago en creacion de preferencia, retorno del navegador, webhook y sincronizacion contra el proveedor para diagnostico real en QA.
- Se agrego el script
scripts/Diagnose-MercadoPagoLead.ps1para revisar porLeadIdla traza completa de pago cruzando configuracion, base local, eventos y consulta directa a Mercado Pago. - Se agrego la consulta
scripts/Diagnose-MercadoPagoLead.sqlpara diagnostico rapido porLeadIddirectamente desde SQL Server sin depender de PowerShell. - Se corrigio el publish del MVC para que los archivos
docs/*.mdviajen al deploy yPlan maestropueda seguir leyendodocs/plan-maestro.mden QA. Plan maestroahora muestra un estado explicito si el markdown falta en el deploy, incluyendo la ruta esperada y la ruta resuelta en el servidor.- Se corrigio el modelo EF para que los enums de leads, historial y pagos se persistan como enteros en SQL Server en vez de texto.
- Se genero la migracion
StoreEnumsAsIntegers, que convierte los datos existentes de string a int y recompone los indices compuestos deLeadPayments. - La consulta
scripts/Diagnose-MercadoPagoLead.sqlquedo tolerante tanto a bases antiguas con enums en texto como a bases nuevas con enums en entero.
2026-04-23
- Se configuró
SMTP2GOcon hostmail.smtp2go.com, puerto2525, usuariobetta_qa_descargo_cly la credencial entregada para el proyecto. - Se dejó
no-reply@descargos.clcomo remitente base y se parametrizó el nombre visible por ambiente:[DEV],[QA]y sin prefijo enProduction. - Se dejó la cascada de configuración por ambiente con
appsettings.Development.json,appsettings.QA.jsonyappsettings.Production.json. - Se ajustó el entorno local para trabajar con
ASPNETCORE_ENVIRONMENT = Development. - Se crearon perfiles de publicación por carpeta para
Development,QAyProductioncon destinoD:\Descargos\[EnvironmentName]. - Se validó un publish real con el perfil
QA, confirmando despliegue aD:\Descargos\QAy generación deweb.configconASPNETCORE_ENVIRONMENT = QA. - Se configuró
SMTP2GOenappsettingscon hostmail.smtp2go.com, puerto2525y el usuariobetta_qa_descargo_cl. - Se agregó la URL final del logo en CDN para que los templates de correo usen la marca real de NewDescargos.
- La salida del modo simulado quedó pendiente de completar con
PasswordyFromEmail. - Se agregó en
Plan maestroun modal para enviar correos de prueba seleccionando template y destinatario, con feedback mediante toast de éxito o error. - Se agregó un acceso directo al login privado desde
Plan maestropara probar los flujos de recuperación y credenciales sobre Identity. Plan maestrodejó de estar restringido solo aDevelopmenty ahora también queda visible enQApara validar mensajería por ambiente.- Se cambió el
FromEmaildeSMTP2GOaclaudio@betta.cl, manteniendo los prefijos visibles por ambiente en el nombre del remitente. - El envío de prueba de
Plan maestroahora devuelve también el detalle real de la excepción SMTP en el feedback visual deDevelopmentyQA. - Se aclaró la cabecera superior de los templates activos de correo para que el logo no compita contra un bloque negro.
- Se normalizaron los badges de los templates activos a un lenguaje visual de confirmación y se redujo ligeramente la escala de los títulos principales del correo.
- Se desactivó el envío del correo
lead-payment-prepared; el hito se mantiene en historial del lead para trazabilidad y estadística, pero ya no sale como notificación activa ni como template de prueba. - Se removieron del repo los valores sensibles versionados en
appsettings.jsony se dejó la configuración base con placeholders vacíos para conexión SQL,SMTP2GOy Mercado Pago. - Se agregó carga opcional de
appsettings.Secrets.jsonyappsettings.[Environment].Secrets.jsonpara soportar overrides seguros fuera de Git tanto en local como en publish por carpeta. - Se dejó
appsettings.Secrets.example.jsoncomo plantilla versionada para reconstruir credenciales reales sin exponerlas. - Se documentó la estrategia oficial de
User Secrets, archivos secretos ignorados y deploy por ambiente endocs/secretos-y-configuracion.md. - Se crearon localmente los archivos ignorados
appsettings.Development.Secrets.json,appsettings.QA.Secrets.jsonyappsettings.Production.Secrets.jsonpara que cada ambiente pueda completarse sin tocar el repo. - El
publishdel MVC ahora copia automáticamente solo el archivo secreto del ambiente objetivo, evitando mezclar credenciales deQAyProductionen la misma salida. - El
publishdel MVC ahora excluye también losappsettingsde otros ambientes para que cada carpeta publicada quede limpia y contenga solo la configuración del ambiente objetivo. - Se corrigió el fallback del selector de fecha en elegibilidad para QA: si
flatpickrno está disponible, el input vuelve atype="date"y ya no intenta abrirshowPicker()desdefocus, evitando el errorNotAllowedError. - Se forzó
flatpickren elegibilidad para todos los dispositivos, evitando que la librería delegue al selector nativo y manteniendo el calendario visual definido para el flujo. - Se eliminó el fallback silencioso al selector nativo en elegibilidad: ahora el flujo exige
flatpickry muestra un error explícito si la librería no carga, para evitar diferencias ocultas entreDevelopmentyQA. - Se agregó manejo de excepciones entendible en el flujo público: elegibilidad, recomendación, checkout y salida a pago ahora devuelven feedback visible en la misma pantalla, con detalle técnico resumido solo en
QAyDevelopment. - Se reemplazó la vista genérica de error por una versión más útil para diagnóstico, mostrando mensaje humano,
Request ID, ruta y resumen técnico controlado según ambiente. - Se corrigió de fondo la estrategia de esquema en EF Core: el modelo y la tabla
__EFMigrationsHistoryquedaron fijados adbo, y se agregó una migración correctiva que detecta y transfiere tablas creadas por error en otro esquema antes de continuar. - Se corrigió la carga de configuración en tiempo de diseño para EF Core:
ApplicationDbContextFactoryahora lee tambiénappsettings.Secrets.jsonyappsettings.[Environment].Secrets.json, y valida explícitamente queDefaultConnectionno venga vacía antes de ejecutar migraciones.