1. Телефон + OTP
2. Email + OTP
3. Профиль + пароль
POST /api/auth/otp/send
intent=register — первый шаг: телефон
POST /api/auth/otp/verify
Подтвердить код с телефона → nextStep: enter_email
POST /api/auth/otp/send
intent=register + challengeId + email (фаза await_email)
POST /api/auth/otp/verify
Подтвердить email → nextStep: complete_profile
Вход по OTP
intent=login — единый challenge API
POST /api/auth/otp/send
POST /api/auth/otp/verify
POST /api/auth/otp/send
intent=password_reset
POST /api/auth/otp/verify
Код + newPassword в одном запросе
intent=bind_email — требуется JWT (войдите сначала)
POST /api/auth/otp/verify
GET /api/users/me
Данные профиля
Войдите и нажмите «Загрузить»
PATCH /api/users/me/notifications
PATCH /api/users/me (негатив)
GET /api/users/:id
Смена телефона
POST /api/users/me/phone/request-change
POST /api/users/me/phone/confirm-change
POST /api/users/me/delete-request
Отмена удаления
POST /api/auth/refresh
Состояние JWT