Commit Graph

49 Commits

Author SHA1 Message Date
Beldor 0792ac3767 Add jefe mecánico to client booking flow
Deploy / deploy (push) Successful in 6m52s
Cliente now picks a jefe mecánico after choosing the service so the
calendar shows that specific jefe's availability. Each jefe has its own
configurable parallel slot capacity (replacing the global SLOTS_PARALELOS
= 5). Admins manage jefes from /admin/jefes; jefes log in to /jefe to
see their daily agenda.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-29 22:28:44 -03:00
Beldor f79e5ce75c Lighten admin page titles and loading text over background image
Deploy / deploy (push) Successful in 4m2s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:24:10 -03:00
Beldor a1eedcf8f5 Add dark blur background to admin nav on mobile
Deploy / deploy (push) Successful in 4m0s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 17:16:07 -03:00
Beldor 7cc6456f97 Remove non-functional headers; lighten text on background image
Deploy / deploy (push) Successful in 4m2s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 16:59:02 -03:00
Beldor 457db923d2 feat: agregar logo Taller MG como fondo y favicon
Deploy / deploy (push) Successful in 4m35s
- Background fijo con tallermg.jpeg + overlay rgba(0,0,0,0.35) en globals.css
- Favicon actualizado usando src/app/icon.jpeg (convención Next.js App Router)
- Eliminado bg-gray-50 de layouts para que el fondo sea visible
- Título del sitio actualizado a "Taller MG"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 14:54:02 -03:00
Beldor cc299cdc11 fix: validar km máximo 1M y mostrar error si falla la reserva
Deploy / deploy (push) Successful in 4m39s
Si alguien ingresaba un km fuera del rango integer de Postgres la app
crasheaba silenciosamente — el cliente no veía ningún mensaje. Se agrega
validación de rango (1–1.000.000) en frontend y backend, y se muestra
el error de la API debajo del botón de confirmar.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 11:08:11 -03:00
Beldor 0b769805f9 feat: validar que kilometraje sea número entero positivo
Deploy / deploy (push) Successful in 4m1s
Muestra error inline si el cliente ingresa letras u otros caracteres,
y bloquea el botón de confirmar hasta que el valor sea válido.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 23:52:31 -03:00
Beldor 221aace9f1 feat: agregar IKA-Renault con modelos Torino, Rambler, Jeep, Carabela
Deploy / deploy (push) Successful in 3m59s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 23:47:51 -03:00
Beldor 0497e936a4 feat: calendario mensual para reservar turnos
Deploy / deploy (push) Successful in 4m3s
- Reemplaza lista de slots por calendario cuadrado mensual
- Sábados y domingos grisados, días sin slots deshabilitados
- Click en día hábil abre modal con horarios disponibles
- Slot dot indicator en días con turnos disponibles
- Amplía búsqueda a 60 días / 500 slots para cubrir todo el mes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 23:33:29 -03:00
Beldor 4a6023f9f3 feat: historial muestra todos los turnos del auto con estado, km y comentario
Deploy / deploy (push) Successful in 3m52s
Reemplaza HistorialServicio por Turno en ambas APIs y frontends (cliente y admin).
Muestra: servicio, fecha, horario, estado (badge), km al ingreso, observaciones del jefe.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 23:19:53 -03:00
Beldor 112f4a07bb fix: quitar header azul de las tarjetas del historial
Deploy / deploy (push) Successful in 3m58s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 23:12:32 -03:00
Beldor 7b3ce1ab82 fix: google sheets append con A1 + INSERT_ROWS para evitar desplazamiento de columna
Deploy / deploy (push) Successful in 4m2s
El rango A:N confundía a la API cuando había datos manuales en K/L (GASTOS/VARIOS),
haciendo que la nueva fila empezara en columna K en vez de A.
INSERT_ROWS siempre inserta fila nueva independiente del estado del sheet.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:53:52 -03:00
Beldor 8167f6c901 fix: scheduling en UTC explícito para Argentina (UTC-3), sin depender del TZ del container
Deploy / deploy (push) Successful in 3m57s
getHours() en Docker devuelve UTC → slots aparecían 3hs antes (5:30 en vez de 8:30).
Ahora usa getUTCHours/getUTCMinutes + offset -180min en todas las comparaciones.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:42:43 -03:00
Beldor e0779bf2d4 fix: agregar GMAIL, Google Sheets y JWT al environment del docker-compose
Deploy / deploy (push) Successful in 3m55s
Variables faltantes causaban EAUTH en el login del cliente

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:30:57 -03:00
Beldor d6c16cb30e ci: fix deploy — git fetch + reset --hard origin/main antes del rebuild
Deploy / deploy (push) Successful in 6m49s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:18:56 -03:00
Beldor 146ef98563 ci: usar label 'taller' en runner para evitar conflicto con runner de inventario
Deploy / deploy (push) Failing after 0s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:04:51 -03:00
Beldor c2b0e39b06 feat: comentario al completar turno, Google Sheets corregido, scheduling 8:30-17 5 slots, mejoras responsive
Deploy / deploy (push) Failing after 12m35s
- Agrega campo comentario opcional al marcar turno COMPLETADO (textarea en UI, guardado en DB, escrito en col N del sheet)
- Corrige mapeo Google Sheets: email→I, telefono→J, vacíos en K-M, comentario→N
- Actualiza scheduling: inicio 8:30, fin 17:00, máx 5 turnos simultáneos
- entrypoint.sh: migrate deploy → db push para aplicar cambios de schema automáticamente
- Historial cliente: tarjetas visuales con header, fecha y observaciones destacadas
- Dashboard/turnos cliente: mejoras responsive mobile
- Fix display duración: 0.5 hs → "30 min"

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 21:57:27 -03:00
Beldor e556e2f16b feat: integración Google Sheets al completar turno
Deploy / deploy (push) Failing after 11m51s
Cuando el admin marca un turno como COMPLETADO escribe una fila
en el sheet con patente, km, auto, cliente, fecha y trabajo.
Auth via service account con JWT nativo (sin googleapis).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 17:38:14 -03:00
Beldor 4d259558c6 feat: agrega km y chasis al turno/auto, combobox de marcas y modelos
Deploy / deploy (push) Failing after 13m41s
- Turno.kilometros (requerido al reservar)
- Auto.nroChasis (opcional)
- Combobox con 60 marcas mundiales y modelos precargados
- Modelo se habilita al seleccionar marca

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:01:19 -03:00
Beldor b6705239a1 fix(cliente): cargar servicios desde endpoint de cliente en vez de admin
Deploy / deploy (push) Failing after 33h14m30s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 23:20:25 -03:00
Beldor 3724669ace feat(admin): buscar clientes por patente en lugar de email
Deploy / deploy (push) Failing after 13m38s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-20 22:51:05 -03:00
Beldor 4554543260 fix: migrate registro email from Resend to Nodemailer+Gmail
Deploy / deploy (push) Successful in 3m6s
2026-06-19 14:55:44 -03:00
Beldor bf43c54126 ci: retry after fixing file permissions
Deploy / deploy (push) Successful in 5m16s
2026-06-19 14:38:11 -03:00
Beldor d69ac3f084 ci: add git reset --hard to ensure clean working tree on deploy
Deploy / deploy (push) Failing after 1s
2026-06-19 14:37:23 -03:00
Beldor 1e5b8911e7 ci: retry after git repo reinit
Deploy / deploy (push) Failing after 28s
2026-06-19 14:35:42 -03:00
Beldor 05dd9a4847 ci: retry after fixing git permissions
Deploy / deploy (push) Failing after 1s
2026-06-19 14:34:45 -03:00
Beldor 9253f00062 ci: fix git remote to use Gitea IP
Deploy / deploy (push) Failing after 0s
2026-06-19 14:33:27 -03:00
Beldor 50a41ce0dc fix: add resend dependency to package.json
Deploy / deploy (push) Failing after 0s
2026-06-19 14:32:27 -03:00
Beldor 346e15a6e1 ci: test native runner
Deploy / deploy (push) Failing after 0s
2026-06-19 14:25:49 -03:00
Beldor a5b684efe6 ci: fix safe.directory for git pull in runner
Deploy / deploy (push) Failing after 1s
2026-06-19 14:21:04 -03:00
Beldor 5f190b9c50 ci: add Gitea Actions deploy workflow
Deploy / deploy (push) Failing after 0s
2026-06-19 13:59:19 -03:00
Beldor 011cdb0323 feat: migrar emails de Resend a Nodemailer + Gmail SMTP
Reemplaza Resend por nodemailer con Gmail SMTP. El to: ahora usa
el email real del cliente en lugar del hardcodeado de sandbox.
Variables de entorno: GMAIL_USER y GMAIL_APP_PASSWORD.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 18:03:13 -03:00
Beldor 4db113b674 fix: redirigir emails a jpbeldomenico@gmail.com para testing con sandbox Resend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 17:22:24 -03:00
Beldor acf4b7f053 fix: usar dominio sandbox de Resend para emails
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 17:14:19 -03:00
Beldor 4e993a95c4 feat: email de bienvenida al registrarse + fix estilos Input
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 17:05:01 -03:00
Beldor d9d2e7d429 Redirect home page to /cliente
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 15:37:52 -03:00
Beldor 080c488e3b fix: use PrismaPg adapter in seed.ts for Prisma 7 compatibility
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:23:28 -03:00
Beldor 3028bde671 fix: switch to full node_modules in runner to resolve prisma CLI dependencies
Removes standalone build to allow prisma CLI to run migrations at startup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:19:09 -03:00
Beldor fb92021bf6 fix: invoke prisma via node directly to preserve __dirname for WASM resolution
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:15:31 -03:00
Beldor 9a3ef4efc3 fix: simplify prisma.config.ts and exclude it from Next.js tsconfig
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:12:03 -03:00
Beldor 1339f42e69 fix: copy prisma.config.ts to runner stage and auto-run migrations on startup
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:09:25 -03:00
Beldor 816530724d fix: add public directory required by Dockerfile COPY step
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:04:15 -03:00
Beldor f28568906a fix: wrap useSearchParams in Suspense boundaries for Next.js 14 static build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 13:02:00 -03:00
Beldor bb1785c737 fix: add force-dynamic to pages using useSearchParams for Next.js 14 build
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 12:59:33 -03:00
Beldor 600f80ff7f fix: remove unused COOKIE constant to fix ESLint build error
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 12:57:48 -03:00
Beldor 1383add1b5 chore: change app port to 3004 to avoid conflict with Grafana on ozark
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 12:52:15 -03:00
Beldor 4cf35f9280 feat: add full frontend — client portal and admin panel
Páginas cliente: login magic link, registro, validación de token,
dashboard de autos, historial por auto y reserva de turnos con selector
de servicio + slots disponibles.

Páginas admin: login, dashboard de turnos del día con cambio de estado,
historial de autos (buscar cliente → auto → ver/cargar registros),
gestión de tipos de servicio y vista de clientes.

Middleware JWT para proteger rutas /cliente/* y /admin/*.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 12:01:31 -03:00
Beldor 93ad1cb8c1 feat: bootstrap taller-turnos project
Estructura inicial con Next.js 14, PostgreSQL/Prisma 7, autenticación por
magic link (clientes) y JWT (admins), lógica de scheduling con 4 slots
paralelos y API routes completas para cliente y panel admin.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 11:51:19 -03:00
Beldor 4fde77e3ed Initial commit from Create Next App 2026-06-18 11:42:37 -03:00