feat: SMS OTP auth, phone verification gate, admin comments/edit/status pages
Backend: - Add SmsService + SmsModule: send OTP via u-site.app provider, 5-min TTL - Auth endpoints: POST /auth/send-otp, POST /auth/phone (login by phone+code), POST /auth/verify-phone (link), PATCH /auth/change-password - is_phone_verified included in JWT token response - GET /comments (admin, JWT-protected) with author/destination names Admin: - Users list: link to detail page per row - User detail: inline edit form (name, city, phone) with PATCH /users/:id - Services list: link to detail page per row - Service detail: status change dropdown (PATCH /services/:id/status) - New Comments page: summary stats + full table with star ratings - New SMS settings page: configure API key + send test SMS - Sidebar: added Comments and SMS entries Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
1c2f0ca71a
commit
7783cac3fe
@@ -11,6 +11,8 @@ import {
|
||||
MapPin,
|
||||
Wrench,
|
||||
Settings,
|
||||
MessageSquare,
|
||||
Star,
|
||||
LogOut,
|
||||
ChevronLeft,
|
||||
Menu,
|
||||
@@ -27,6 +29,8 @@ const menu = [
|
||||
{ href: '/services', label: 'Servicios', icon: ClipboardList },
|
||||
{ href: '/cities', label: 'Ciudades', icon: MapPin },
|
||||
{ href: '/professions', label: 'Profesiones', icon: Wrench },
|
||||
{ href: '/comments', label: 'Comentarios', icon: Star },
|
||||
{ href: '/sms', label: 'SMS', icon: MessageSquare },
|
||||
{ href: '/settings', label: 'Configuración', icon: Settings },
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user