Qadam Roadmap
проектdocs/frontend/frontend-training-type-handoff-2026-04-15.md

Handoff для frontend по trainingType в Item

Обновлён 15 апр. 2026 г., 10:28 · 0 комментариев

Handoff для frontend по trainingType в Item

Паспорт документа

  • Статус документа: working reference

  • Актуально на: 15 апреля 2026 года

  • Владелец: backend/platform-команда, совместно с frontend-командой

  • Пересмотр: при изменении контрактов Item.trainingType, catalog filter или seller item CRUD

  • Область применения: handoff backend-контракта поля trainingType для команды qadam-web

  • Связанные документы:

  • Статус: ready for frontend

  • Актуально на: 15 апреля 2026

  • Репозиторий: qadam-core

  • Ветка: dev

Что добавлено

В Item добавлено nullable-поле:

  • trainingType: "LESSON" | "COURSE" | null

Null допустим для уже существующих айтемов. Если значение null, фронт может не показывать бейдж и не подсвечивать тип обучения.

Seller API

POST /api/v1/seller/items

Body теперь принимает:

{
  "trainingType": "LESSON"
}

Допустимые значения:

  • LESSON
  • COURSE
  • null

PUT /api/v1/seller/items/:id

Body также принимает trainingType.

GET /api/v1/seller/items

Каждый элемент списка seller items теперь возвращает:

{
  "trainingType": "COURSE"
}

GET /api/v1/seller/items/:id

В seller item detail теперь также приходит:

{
  "trainingType": "LESSON"
}

Catalog API

GET /api/v1/catalog/items

Добавлен query-параметр:

trainingType=LESSON
trainingType=COURSE
trainingType=LESSON&trainingType=COURSE

Фронт может передавать его как массив по той же модели, что studyType и studyFormat.

Каждый элемент каталога теперь возвращает:

{
  "trainingType": "LESSON"
}

GET /api/v1/catalog/items/:slug

В item detail теперь также приходит:

{
  "trainingType": "COURSE"
}

Что фронту нужно сделать

  1. Подключить чипы Занятие / Курс в seller form через trainingType.
  2. Передавать trainingType в create/update item requests.
  3. Подключить фильтр каталога по trainingType.
  4. Показать бейдж Занятие / Курс в catalog card и item detail, если trainingType !== null.

Источник истины