This website requires JavaScript.
23db497730
fix: include id and phone in professionals.users for findById
main
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-22 10:16:53 -05:00
b4857dbc75
fix: notify professional via FCM when service is created
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-22 09:33:38 -05:00
d7a0769b46
feat: filter professionals by city and proximity
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-21 20:35:03 -05:00
00a6f637f6
feat: rank professionals by completed services + score, search by name/profession/city
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 20:18:14 -05:00
74be21eb4e
fix: use 'as any[]' for notIn array to avoid readonly tuple type error
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 20:02:10 -05:00
7d481b3451
Exclude self_booked/denied/cancelled from professional services list
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 19:54:08 -05:00
c720911172
add configurable appointment slot duration per professional
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 19:24:49 -05:00
afbf4d537e
show gender on admin professional detail page
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 19:03:02 -05:00
2180e0480c
add admin services-by-professional endpoint + calendar view in admin panel
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 18:58:42 -05:00
8a97b52eb7
feat(services): add POST /services/block endpoint for slot blocking
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 18:26:57 -05:00
c8b2c0c901
fix(services): add double-booking check and schedule validation on create
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-12 17:55:55 -05:00
72777df52c
fix: save and display professional profile address, payment methods, and docs
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 21:42:37 -05:00
1e0de51ec5
feat(settings): add domicilios and tarifas toggles in admin panel
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 20:48:10 -05:00
4d98c7cb70
feat(auth): reject login and invalidate token for blocked users
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 14:56:28 -05:00
a8842a2728
feat(users): add block/unblock and delete from admin panel
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 14:55:16 -05:00
04f1801b89
fix(entrypoint): let 0001 migration run so rethus columns are created on deploy
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 14:34:46 -05:00
57c159e91f
fix(migrations): baseline existing tables + add 0003 for missing suggestions table
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 14:17:08 -05:00
9703b1f08e
fix(db): use postgres container name as host instead of IP, fix space in user
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 14:10:27 -05:00
f6e34807ce
fix(network): revert to bridge network — host mode breaks Docker internal routing to 10.0.1.9
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 13:59:52 -05:00
46f3085432
fix(network): use host network mode so backend can reach LAN postgres at 10.0.1.9
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 13:42:05 -05:00
54bc39bb34
fix(config): hardcode DATABASE_URL in entrypoint
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 13:28:28 -05:00
e9e3d8141d
fix(entrypoint): remove set -e, add verbose logging, don't block on migration failure
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 13:24:57 -05:00
6288b9e43b
chore(config): add DATABASE_URL to backend service in docker-compose
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 13:14:09 -05:00
1e63ed1873
feat(db): idempotent migrations + auto-deploy on startup
Lizandro Guarnizo and Claude Sonnet 4.6
2026-07-02 13:10:33 -05:00
749a1e860d
feat(professionals): send FCM push notifications on status changes
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-30 08:57:47 -05:00
1f3efb50da
Add SMTP test email endpoint and mail logs in admin settings
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 11:20:56 -05:00
b0ca6804fa
Fix JSON parse error on empty responses: handle empty body in API client and return message from saveSmtpConfig
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 11:12:13 -05:00
27f4a2d7ec
Add transactional emails: welcome, professional submission, status changes
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 11:01:45 -05:00
0a67f5d80a
Add Verifik RETHUS integration: backend module, settings auth flow, admin query button
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 10:50:35 -05:00
66bc47b6e1
Fix UpdateProfessionalDto: add identification_picture and certificate_picture
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 10:41:27 -05:00
aa35f4b661
Always show documents section in professional detail, with No subido fallback
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 10:31:40 -05:00
b0e3467565
Fix resetRejected: always reset pro_state even without professional record
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 10:03:31 -05:00
5f02c45759
Fix retry flow: reset pro_state without deleting professional record
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-29 10:00:38 -05:00
0899105a52
Add rejection retry flow with configurable wait days
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 18:03:13 -05:00
3fd7a33fc1
Add rejected professionals tab and fix deny to keep record
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 18:00:03 -05:00
86c6f3e6b7
Add persistent volume for uploads to survive redeployments
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:55:29 -05:00
aa241d733d
Set STORAGE_URL so uploaded files get public URLs
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:54:21 -05:00
7935e48fae
Add status management and documents view to pro detail page
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:49:28 -05:00
efb48e017f
Show email/phone in pro detail and improve RETHUS section
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:47:01 -05:00
f845350911
Fix Decimal.toFixed crash and new professionals default is_active
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:39:56 -05:00
053f2d0b56
Fix pro_state field name mismatch in /auth/me response
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:38:10 -05:00
5380a894b1
Fix useParams null crash on detail pages
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:35:42 -05:00
d1f93d6d13
Add Ver button to active professionals in admin list
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:27:59 -05:00
d551739d0c
Fix upsert: create professional record if none exists
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:20:35 -05:00
ce769dfe8d
Fix professional 500 error, add SMTP config UI and message history page
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 17:08:59 -05:00
6da45ac9d1
chore: JWT expira en 365 días (1 año)
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 11:38:59 -05:00
30588effec
feat: endpoint GET /locations/cities/all para lista plana de ciudades
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 11:38:26 -05:00
522adc3b74
feat: SMTP config en DB, historial mensajes, JWT 90d, email OTP con Prisma
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-28 11:35:17 -05:00
a9b5e413e3
feat: página admin /admin-sugerencias + enlace en sidebar
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 19:46:30 -05:00
8a1f9687cd
feat: filtrar profesionales por ciudad con query param ?city=
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 19:26:33 -05:00
f94c2f96b0
fix: POST /suggestions requiere JWT (solo usuarios autenticados)
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 19:23:20 -05:00
c919bb737f
fix: reemplazar Textarea (no existe) con textarea nativo en página sugerencias
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 19:19:52 -05:00
42d41eb199
feat: módulo de sugerencias (backend) + página pública /sugerencias (admin)
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 19:05:58 -05:00
4e932c2347
revert: quitar url del datasource que rompió prisma generate en build
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 18:56:00 -05:00
a7562bca71
fix: quitar dummy URL de prisma generate, no necesita conexión real
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 18:54:46 -05:00
446c79fbfe
fix: quitar prisma migrate deploy del CMD, se corre manualmente
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 18:53:07 -05:00
8c05b09f28
fix: prisma generate usa DATABASE_URL dummy en build (no necesita conexión real)
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 18:52:47 -05:00
21d7707bc0
fix: agregar DATABASE_URL al datasource de Prisma y CMD no-fatal para migrate
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 18:50:44 -05:00
f2bd710694
fix: correr prisma migrate deploy al arrancar el servidor
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 18:29:56 -05:00
c1e9dba2d1
feat: campo RETHUS con validación manual desde el admin
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 18:23:55 -05:00
46fcb57edf
fix: settings siempre retorna objeto, autocomplete Colombia con bias de ubicacion
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 10:11:13 -05:00
f66b1a9bc1
fix: agregar campos soporte faltantes en admin settings
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 09:54:16 -05:00
7e68fcc2bb
feat: email OTP para vincular correo al perfil
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 09:35:01 -05:00
d3ca99fa1b
feat: agregar endpoint /autocomplete en admin Next.js
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 08:51:51 -05:00
abc19505ae
feat: edicion de usuarios y profesionales desde el admin
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 08:22:40 -05:00
e7afbf6d7b
feat: restore global settings with proper fields in settings page
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 08:02:29 -05:00
3e1632e776
feat: Google Maps API key management in admin settings
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 07:59:19 -05:00
39c4301d1b
feat: full locations CRUD + legal policies in settings
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-27 07:45:53 -05:00
5c740420e9
fix: return JSON body from send-otp endpoint
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-26 22:11:29 -05:00
a067e5d260
fix: handle network errors and non-JSON SMS responses as 400 not 500
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-25 19:21:18 -05:00
5c3e3c4bc8
fix: handle null in service status select onValueChange
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-25 16:44:49 -05:00
a81a01a06d
feat: use real ProsApp logo in admin login and sidebar
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-25 16:15:05 -05:00
a5c1dd7c33
feat: improve admin login UI and sidebar branding
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-25 16:12:56 -05:00
7783cac3fe
feat: SMS OTP auth, phone verification gate, admin comments/edit/status pages
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-25 15:53:32 -05:00
1c2f0ca71a
fix: strip leading + from phone number before sending to SMS provider
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-25 15:26:57 -05:00
6e4cc7436d
feat: send FCM push notification on service status change + update docs
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-18 12:49:27 -05:00
130e52ddcd
fix: align Flutter API repositories with backend routes (Fase 3 prep)
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-17 18:23:14 -05:00
e3e9509222
fix: pin PORT per service to isolate from global Coolify env var
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-17 09:23:05 -05:00
d0e70dff0a
fix: map admin port 5173:3001 to match Next.js runtime port
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-17 09:18:51 -05:00
5d263aab96
fix: map backend port 3001:3001 to match app runtime port
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-17 09:15:02 -05:00
34ee7be531
fix: correct EXPOSE port to 3001 to match app runtime port
Lizandro Guarnizo and Claude Sonnet 4.6
2026-06-17 08:54:20 -05:00
ac7fe193cd
hola
Lizandro Guarnizo
2026-06-17 07:47:29 -05:00
3fa0f5bd5f
fix: add Tailwind CSS config to enable style compilation
Lizandro Guarnizo and Claude Haiku 4.5
2026-06-16 22:28:40 -05:00
e4799a8bf7
style: apply ProsApp brand color #26b5f0 to admin theme
Lizandro Guarnizo
2026-06-04 08:58:16 -05:00
668aa152bf
fix: add admin.prosapp.co to CORS allowed origins
Lizandro Guarnizo
2026-06-04 08:46:18 -05:00
86a14713e0
fix: make root layout a server component with globals.css import and html/body tags
Lizandro Guarnizo
2026-06-04 08:27:27 -05:00
86d5ea9704
fix: allow /login route to bypass AuthGuard so login page renders instead of blank
Lizandro Guarnizo
2026-06-04 08:24:28 -05:00
558647414d
fix admin Dockerfile: pass NEXT_PUBLIC_API_URL as build arg
Lizandro Guarnizo
2026-06-03 23:46:57 -05:00
25c04ced2f
add JWT_SECRET fallback, remove env_file from compose
Lizandro Guarnizo
2026-06-03 23:04:01 -05:00
83508a22f3
make FCM_SERVER_KEY optional in NotificationsService
Lizandro Guarnizo
2026-06-03 23:01:52 -05:00
15794ba073
use @prisma/adapter-pg with PrismaClient (required by prisma v7)
Lizandro Guarnizo
2026-06-03 22:58:06 -05:00
04f701e664
fix prisma schema: add engineType=library (avoids client mode requiring adapter)
Lizandro Guarnizo
2026-06-03 22:53:22 -05:00
41bcf31428
fix PrismaClient constructor: pass empty object (required prisma v7)
Lizandro Guarnizo
2026-06-03 22:51:03 -05:00
5db8b0a131
fix PrismaService: pass datasources to PrismaClient constructor (required in v7)
Lizandro Guarnizo
2026-06-03 22:49:06 -05:00
741263735b
remove stale tsbuildinfo from git, add to gitignore
Lizandro Guarnizo
2026-06-03 22:46:38 -05:00
8fe15f0528
switch npm ci to npm install for Docker compat
Lizandro Guarnizo
2026-06-03 22:43:48 -05:00
47ad790f79
fix Dockerfiles: remove deprecated flags, add .dockerignore
Lizandro Guarnizo
2026-06-03 22:42:29 -05:00
ae6bd1f53a
fix Dockerfiles: update npm to latest before ci
Lizandro Guarnizo
2026-06-03 22:40:10 -05:00
afc096d552
full project: admin panel, backend modules, docs
Lizandro Guarnizo
2026-06-03 22:11:01 -05:00
1635723035
add Dockerfiles and docker-compose for Coolify deploy
Lizandro Guarnizo
2026-06-03 22:10:28 -05:00