API: ресурсы

Ресурсы API версии v1. Общие соглашения (авторизация, ошибки, пагинация) описаны в разделе API: обзор.

Проект Список отражает план MVP. Точные схемы запросов и ответов появятся в спецификации OpenAPI.

Авторизация и аккаунт

Метод и путьНазначение
POST /auth/otp/requestОтправить SMS-код на номер
POST /auth/otp/verifyПроверить код, получить токены
POST /auth/oauth/{google|apple}Вход через Google или Apple
POST /auth/linkПривязать телефон или другой способ входа
POST /auth/refreshОбновить пару токенов
GET /me, PATCH /meСвой аккаунт и настройки
DELETE /meУдалить аккаунт
POST /devicesЗарегистрировать устройство для push (FCM / APNs)

Справочники

Метод и путьНазначение
GET /categoriesКатегории и навыки на таджикском и русском
GET /locationsРегионы, города, районы

Рабочие и портфолио

Метод и путьНазначение
GET /workersПоиск: category, location, available_today, near, min_rating, verified, type=individual|crew
GET /workers/{id}Публичный профиль
POST /workers, PATCH /workers/{id}Создать или изменить свой профиль
PUT /workers/{id}/availabilityВключить или выключить «Свободен сегодня»
GET /workers/{id}/postsЛента работ (портфолио)
POST /workers/{id}/postsОпубликовать работу: фото и подпись
DELETE /posts/{id}Удалить публикацию
POST /media/uploadsПолучить ссылку для загрузки фото

Заказы

Метод и путьНазначение
GET /jobsЛента открытых заказов с фильтрами
POST /jobsСоздать заказ (черновик или сразу открытый)
GET /jobs/{id}, PATCH /jobs/{id}Заказ. Адрес и телефон только участникам после назначения
GET|POST /jobs/{id}/applicationsОтклики: список для заказчика, создание для рабочего
POST /jobs/{id}/invitationsПригласить рабочего
PUT /jobs/{id}/assignmentНазначить исполнителя и согласованную сумму
POST /jobs/{id}/transitionsСменить статус заказа: см. жизненный цикл

Доверие и модерация

Метод и путьНазначение
POST /reviewsОставить отзыв по завершённому заказу
GET /workers/{id}/reviewsОпубликованные отзывы о рабочем
POST /reportsПожаловаться на профиль, заказ, фото или отзыв
POST /verificationsОтправить документ и селфи на проверку
GET|POST /favoritesИзбранные рабочие
GET /notificationsУведомления пользователя
/admin/*Админка: роли support, verifier, moderator, admin

Пример: профиль рабочего

GET /v1/workers/wrk_8f2c

{
  "id": "wrk_8f2c",
  "type": "individual",
  "display_name": "Фаррух",
  "photo_url": "https://cdn.mardikor.tj/...",
  "categories": ["tiles", "plaster"],
  "location": { "city": "dushanbe", "district": "sino" },
  "rate": { "unit": "day", "amount": 30000 },
  "available_today": true,
  "verified": true,
  "stats": {
    "rating": 4.9,
    "reviews": 31,
    "completed_jobs": 38,
    "cancel_rate": 0.03,
    "no_shows": 0,
    "median_response_minutes": 12
  },
  "phone": null
}

Поле phone остаётся null, пока между пользователями нет назначенного заказа.