Commit Graph

160 Commits

Author SHA1 Message Date
Carlos Narro
c4cc4d20d4 Rehace la maquetación móvil de la página de precios
Las filas del catálogo, la configuración general y el formulario de alta
no estaban pensados para móvil (input de precio descolgado, etiquetas que
desalineaban la cuadrícula, campos sueltos). Ahora las filas apilan
nombre + metadatos + controles de forma limpia en móvil y mantienen la
fila única en escritorio; la cuadrícula usa etiquetas legibles y alinea
los inputs; el alta es una cuadrícula de 2 columnas en móvil.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:53:40 +02:00
Carlos Narro
de798b00ce Hace responsive la tabla de precios en móvil
Las filas del catálogo y la cabecera CSV se desbordaban horizontalmente
en móvil (botones Guardar/Borrar fuera de pantalla), y ese overflow
horizontal desestabilizaba la barra de navegación fija. Las filas ahora
hacen wrap y el bloque <code> rompe palabra.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:49:28 +02:00
Carlos Narro
2f13057e02 Corrige barra de navegación móvil que no quedaba fija al hacer scroll
El body usaba overflow-x:hidden, lo que forzaba overflow-y a auto y creaba
un contenedor de scroll ambiguo que rompía position:fixed (la barra
aparecía tarde y no se anclaba abajo, sobre todo en iOS Safari). Se cambia
a overflow-x:clip, que recorta el desbordamiento horizontal sin crear
contenedor de scroll.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 23:53:26 +02:00
Carlos Narro
27165a41eb Rediseña la navegación móvil del panel/admin con barra de pestañas inferior
Sustituye el menú hamburguesa por una barra fija inferior con iconos y
etiquetas (thumb-friendly, siempre visible), manteniendo la nav horizontal
en escritorio.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 22:56:30 +02:00
Carlos Narro
83ad82e617 Mejora la navegación móvil del panel y admin
Extrae un AppNav reutilizable con menú hamburguesa desplegable en móvil
y resaltado del enlace activo. Antes la marca y los enlaces se apretaban
en una sola fila en pantallas pequeñas; ahora el nombre de empresa se
oculta en móvil y los enlaces pasan a un desplegable.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 22:42:07 +02:00
Carlos Narro
ec141cdd6e Añade revisión pre-envío del reformista y PDF de presupuesto pulido
Adelanta de F1.5 a F2 la validación pre-envío: el panel permite elegir
modo de envío (automático/revisión), editar los conceptos del
presupuesto y enviar al cliente por WhatsApp (simulado).

Añade datos de empresa y logo configurables en /panel/empresa y genera
el presupuesto como PDF real descargable con esa marca vía
@react-pdf/renderer, sustituyendo la vista HTML imprimible.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 22:27:05 +02:00
Carlos Narro
b84b2f37a2 Fijar trial a 14 días en alta de tenant y reforzar filtro por tenant en escrituras 2026-05-30 20:02:02 +02:00
Carlos Narro
4f48b1591c Extender cobertura de tests a auth, validación y billing 2026-05-30 19:59:35 +02:00
Carlos Narro
7565a7bf46 Mostrar badge de plan y botón de pago deshabilitado 2026-05-30 19:58:58 +02:00
Carlos Narro
ac3b1cd294 Add stub de Stripe (sin cobro real) 2026-05-30 19:58:29 +02:00
Carlos Narro
f2fb6d24c6 Add cálculo de trial y badge de plan 2026-05-30 19:58:18 +02:00
Carlos Narro
df085b6cf1 Add asignación de planes y estado de suscripción 2026-05-30 19:57:49 +02:00
Carlos Narro
07d41e1f6b Add gestión de usuarios en el admin 2026-05-30 19:57:10 +02:00
Carlos Narro
6f86334c8a Add layout y dashboard del admin 2026-05-30 19:56:31 +02:00
Carlos Narro
b91e1685c0 Add queries del área admin 2026-05-30 19:55:33 +02:00
Carlos Narro
9d140d8467 Cablear CTAs de trial de la landing B2B a /signup 2026-05-30 19:53:03 +02:00
Carlos Narro
795d6a7a19 Add signup trial que crea tenant y owner
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 19:50:50 +02:00
Carlos Narro
aecfb2c7e3 Add validación y slug del signup
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 19:49:09 +02:00
Carlos Narro
e1f12f94c6 Sembrar planes y usuarios demo (admin + owner logueable)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 19:47:11 +02:00
Carlos Narro
6add2f93ea Proteger el panel con sesión y mostrar empresa real 2026-05-30 19:45:07 +02:00
Carlos Narro
17cd03d3c9 Usar AnyPgColumn en vez de any para la referencia forward de plan_id
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 19:43:59 +02:00
Carlos Narro
b776646a50 Add login y logout 2026-05-30 19:43:10 +02:00
Carlos Narro
a7339b8f14 Migrar resolución de tenant del panel a la sesión 2026-05-30 19:41:04 +02:00
Carlos Narro
a6b77b9731 Add ciclo de vida de sesión y helpers de usuario actual
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 19:39:31 +02:00
Carlos Narro
7b3b8457c1 Add schema de users, sessions, plans y suscripción de tenant
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 19:37:35 +02:00
Carlos Narro
2cc19147ff Add decisiones de autorización puras
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 19:35:41 +02:00
Carlos Narro
4e4cc8545e Add generación y expiración de tokens de sesión 2026-05-30 19:34:07 +02:00
Carlos Narro
49b5910593 Add hashing y verificación de contraseña 2026-05-30 19:32:28 +02:00
Carlos Narro
5fb0d571cd Add bcryptjs para hashing de contraseñas 2026-05-30 19:30:46 +02:00
Carlos Narro
0f106423be Add plan de implementación auth + multi-tenant + admin de planes
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 19:22:16 +02:00
Carlos Narro
902062d443 Add design spec for auth, multi-tenant y admin de planes
Diseño aprobado del módulo de login del reformista, aislamiento
multi-tenant y área admin con asignación de planes (Stripe en stub).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 19:09:05 +02:00
Carlos Narro
96dedaf60c Seed catálogo y presupuesto calculado para lead demo
Calcula y persiste el desglose de Roberto Salas con computeBudget para
que el detalle muestre un presupuesto generado real al abrir el panel.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 17:56:05 +02:00
Carlos Narro
c02f681a9a docs: documentar panel de precios y motor de presupuesto en README
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 17:28:11 +02:00
Carlos Narro
6a41327c57 chore: probar autodeploy webhook Gitea->Dokploy
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 17:23:14 +02:00
Carlos Narro
6be00e3eb5 fix: validate numeric pricing inputs and drop unused import
Guard euro/altura inputs in precios actions so empty or non-numeric
form values return a Spanish error instead of writing NaN and throwing
a 500. Remove the now-unused formatEuros import flagged by ESLint.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 12:46:52 +02:00
Carlos Narro
588aa4dc1c feat: wire computeBudget into recalcularPresupuesto and show desglose
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 12:41:40 +02:00
Carlos Narro
4106d58614 feat: add pricing panel with catalog CRUD and CSV import 2026-05-30 12:36:31 +02:00
Carlos Narro
c00c571549 feat: add queries mapping pricing config and catalog to engine types 2026-05-30 12:33:11 +02:00
Carlos Narro
892c257182 feat: migrate and seed pricing config + demo catalog 2026-05-30 12:31:58 +02:00
Carlos Narro
afef9f2cb0 feat: add pricing_config, catalog_items and budget input fields to schema 2026-05-30 12:30:03 +02:00
Carlos Narro
e6f8b47205 fix: correct factorZona zero handling and confidence for unresolved selections 2026-05-30 12:28:10 +02:00
Carlos Narro
58d3f62a76 feat: add catalog CSV parser with per-row validation 2026-05-30 12:24:47 +02:00
Carlos Narro
896c7ac89b feat: implement computeBudget with partidas, zona factor, licencia and range 2026-05-30 12:22:42 +02:00
Carlos Narro
61e0f5dbe5 feat: resolve unit price from catalog with selection override
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 12:20:10 +02:00
Carlos Narro
b27b68908c feat: derive cantidades from minimal measurements
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 12:18:48 +02:00
Carlos Narro
9b14dbfac5 feat: add budget domain types and partida labels 2026-05-30 12:17:04 +02:00
Carlos Narro
515e9fd7a2 chore: set up vitest and add zod 2026-05-30 12:15:26 +02:00
Carlos Narro
75de172900 docs: add motor de presupuesto implementation plan
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 12:12:07 +02:00
Carlos Narro
bd07586b03 Add motor de presupuesto design spec
Diseño validado del motor de presupuesto: modelo híbrido partidas←precios
unitarios, medidas mínimas (m² suelo + supuestos), calidad B/M/P + catálogo
importable por CSV, y progressive disclosure de personalización en el funnel.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-30 08:27:06 +02:00
Carlos Narro
f09024f753 Add B2B reformista panel with Postgres/Drizzle data layer
Modela el funnel del lead en dos dimensiones (pipeline_stage técnico
de 7 pasos + estado comercial de 6 estados) y siembra 11 leads demo,
uno por cada momento del funnel, para analizar el siguiente paso.
Incluye panel /panel (lista + detalle RF-D-01/02) y wiring de deploy
(Dockerfile multi-stage + entrypoint migrate+seed).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-29 15:51:10 +02:00