API Shop Categories - rubyhat/fastyshop-backend GitHub Wiki
🗂️ Категории магазинов (ShopCategories API)
Контроллер: Api::V1::ShopCategoriesController
Версия: v1
Слой: Публичный API
Все методы доступны без аутентификации. Категории сидируются заранее.
📘 Общая логика
Категории магазинов — это предустановленные (сидированные) значения, из которых продавец выбирает при создании магазина. Они не редактируются пользователями.
Служат для фильтрации, настройки шаблонов магазинов и аналитики.
📄 Методы
📂 GET /api/v1/shop_categories
Получение списка всех доступных категорий магазинов.
✅ Ответ
[
{
"id": "fa8b12b4-1b20-4c4c-a4fc-114ea6e87960",
"title": "Цветы",
"slug": "flowers"
},
{
"id": "36e778bb-2b3d-4b27-9b1d-94a1c6485052",
"title": "Электроника",
"slug": "electronics"
}
]
✅ Чек-лист
| Пункт | Значение |
|---|---|
| 🔒 Требуется access token | ❌ Нет |
| 🔐 Политики доступа | Не применяются |
| 🔗 Зависимости | Отсутствуют |
💼 Бизнес-логика
- Категории заранее сидируются в базу данных
- Используются при создании магазина (
Shop) - Категории не могут быть созданы, изменены или удалены через API
📚 Кейсы использования
🧾 Кейс 1: Продавец создаёт магазин
На форме создания магазина продавец выбирает категорию из выпадающего списка, который загружается с помощью
GET /shop_categories.
🔎 Кейс 2: Покупатель ищет магазины по категориям
Клиент в каталоге магазинов применяет фильтрацию по
shop_category_id, передавая ID из полученного списка.
🎛 Кейс 3: Админ настраивает шаблон по категории
Админ использует ID категории, чтобы задать шаблон для будущих магазинов, включая дефолтные товары и оформление.
🧩 Связанные сущности
| Сущность | Назначение |
|---|---|
ShopCategory |
Сидированная категория магазина |
Shop |
Содержит ссылку на shop_category_id |
📄 TODO / Идеи
- Поддержка перевода названий на разные языки
- Поддержка иконок и изображений для категорий
- Расширение до 2 уровня (подкатегории)