
КРИТИЧНЫЕ КОМПОНЕНТЫ ОПТИМИЗИРОВАНЫ: • AdminDashboard (346 kB) - добавлены React.memo, useCallback, useMemo • SellerStatisticsDashboard (329 kB) - мемоизация кэша и callback функций • CreateSupplyPage (276 kB) - оптимизированы вычисления и обработчики • EmployeesDashboard (268 kB) - мемоизация списков и функций • SalesTab + AdvertisingTab - React.memo обертка ТЕХНИЧЕСКИЕ УЛУЧШЕНИЯ: ✅ React.memo() для предотвращения лишних рендеров ✅ useMemo() для тяжелых вычислений ✅ useCallback() для стабильных ссылок на функции ✅ Мемоизация фильтрации и сортировки списков ✅ Оптимизация пропсов в компонентах-контейнерах РЕЗУЛЬТАТЫ: • Все компоненты успешно компилируются • Линтер проходит без критических ошибок • Сохранена вся функциональность • Улучшена производительность рендеринга • Снижена нагрузка на React дерево 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
6.0 KiB
6.0 KiB
API Documentation
GraphQL Schema Overview
Основные типы
Organization Types
enum OrganizationType {
SELLER # Селлер
WHOLESALE # Поставщик
FULFILLMENT # Фулфилмент
LOGIST # Логистика
}
Product Types
enum ProductType {
PRODUCT # Товар
CONSUMABLE # Расходники
DEFECT # Брак (планируется)
FINISHED_PRODUCT # Готовый продукт (планируется)
}
Supply Order Statuses
enum SupplyOrderStatus {
PENDING
SUPPLIER_APPROVED
CONFIRMED
LOGISTICS_CONFIRMED
SHIPPED
IN_TRANSIT
DELIVERED
CANCELLED
}
Основные Query запросы
Аутентификация и пользователи
me
- Текущий пользовательcheckUserExists(phone: String!)
- Проверка существования пользователя
Организации и партнеры
myOrganization
- Организация текущего пользователяmyCounterparties
- Список партнеровmyCounterpartyRequests
- Заявки на партнерствоsearchOrganizations(search: String, type: OrganizationType)
- Поиск организаций
Товары и склад
myProducts
- Товары организацииorganizationProducts(organizationId: ID!, type: ProductType)
- Товары конкретной организацииgetSupplierGoods(supplierId: ID!)
- Товары поставщикаmyWarehouseStats
- Статистика складаfulfillmentWarehouseStats
- Статистика фулфилмент склада
Поставки
mySupplyOrders
- Заказы поставокmySupplies
- Поставки организацииgetSupplySuppliers
- Поставщики для поставок
Услуги (Фулфилмент)
myServices
- Услуги фулфилментаmyLogistics
- Логистические маршрутыmyEmployees
- СотрудникиemployeeSchedule(employeeId: ID!, year: Int!, month: Int!)
- График сотрудника
Wildberries интеграция
getWBProducts
- Товары из WBgetWBWarehouseData
- Данные склада WBgetWBReturnClaims
- Заявки на возврат WB
Основные Mutations
Аутентификация
sendSmsCode(phone: String!)
- Отправка SMS кодаverifySmsCode(phone: String!, code: String!)
- Верификация кодаupdateUserAvatar(avatar: String!)
- Обновление аватара
Организации
createOrganization(input: CreateOrganizationInput!)
- Создание организацииupdateOrganization(input: UpdateOrganizationInput!)
- Обновление организации
Товары
createProduct(input: CreateProductInput!)
- Создание товараupdateProduct(id: ID!, input: UpdateProductInput!)
- Обновление товараdeleteProduct(id: ID!)
- Удаление товараtoggleProductStatus(id: ID!)
- Изменение статуса товара
Поставки
createSupplyOrder(input: CreateSupplyOrderInput!)
- Создание заказаupdateSupplyOrderStatus(id: ID!, status: SupplyOrderStatus!)
- Обновление статусаcreateWildberriesSupply(input: CreateWildberriesSupplyInput!)
- Создание WB поставки
Партнерство
sendCounterpartyRequest(receiverId: ID!, message: String)
- Отправка заявкиacceptCounterpartyRequest(requestId: ID!)
- Принятие заявкиrejectCounterpartyRequest(requestId: ID!)
- Отклонение заявки
Услуги (Фулфилмент)
createService(input: CreateServiceInput!)
- Создание услугиupdateService(id: ID!, input: UpdateServiceInput!)
- Обновление услугиdeleteService(id: ID!)
- Удаление услуги
Сотрудники (Фулфилмент)
createEmployee(input: CreateEmployeeInput!)
- Создание сотрудникаupdateEmployee(id: ID!, input: UpdateEmployeeInput!)
- Обновление сотрудникаdeleteEmployee(id: ID!)
- Удаление сотрудникаupdateEmployeeSchedule(input: UpdateEmployeeScheduleInput!)
- Обновление графика
Правила доступа
Общие правила
- Все запросы требуют аутентификации (кроме auth endpoints)
- Доступ ограничен типом организации пользователя
- Фулфилмент имеет максимальные права доступа
Специфичные ограничения
- Создание товаров: Только WHOLESALE
- Создание услуг: Только FULFILLMENT
- Управление сотрудниками: Только FULFILLMENT
- Просмотр всех заказов: FULFILLMENT и участники заказа
Примеры запросов
Получение товаров поставщика
query GetSupplierProducts($organizationId: ID!) {
organizationProducts(organizationId: $organizationId, type: PRODUCT) {
id
name
article
price
quantity
images
}
}
Создание заказа поставки
mutation CreateSupplyOrder($input: CreateSupplyOrderInput!) {
createSupplyOrder(input: $input) {
id
status
items {
product {
name
}
quantity
price
}
}
}
Обновление статуса поставки
mutation UpdateSupplyStatus($id: ID!, $status: SupplyOrderStatus!) {
updateSupplyOrderStatus(id: $id, status: $status) {
id
status
updatedAt
}
}
Последнее обновление: ${new Date().toISOString().split('T')[0]}