Обновления системы после анализа и оптимизации архитектуры
- Обновлена схема Prisma с новыми полями и связями - Актуализированы правила системы в rules-complete.md - Оптимизированы GraphQL типы, запросы и мутации - Улучшены компоненты интерфейса и валидация данных - Исправлены критические ESLint ошибки: удалены неиспользуемые импорты и переменные - Добавлены тестовые файлы для проверки функционала 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -36,6 +36,9 @@ export const typeDefs = gql`
|
||||
|
||||
# Расходники селлеров (материалы клиентов)
|
||||
mySupplies: [Supply!]!
|
||||
|
||||
# Доступные расходники для рецептур селлеров (только с ценой и в наличии)
|
||||
getAvailableSuppliesForRecipe: [SupplyForRecipe!]!
|
||||
|
||||
# Расходники фулфилмента (материалы для работы фулфилмента)
|
||||
myFulfillmentSupplies: [Supply!]!
|
||||
@ -173,10 +176,8 @@ export const typeDefs = gql`
|
||||
updateService(id: ID!, input: ServiceInput!): ServiceResponse!
|
||||
deleteService(id: ID!): Boolean!
|
||||
|
||||
# Работа с расходниками
|
||||
createSupply(input: SupplyInput!): SupplyResponse!
|
||||
updateSupply(id: ID!, input: SupplyInput!): SupplyResponse!
|
||||
deleteSupply(id: ID!): Boolean!
|
||||
# Работа с расходниками (только обновление цены разрешено)
|
||||
updateSupplyPrice(id: ID!, input: UpdateSupplyPriceInput!): SupplyResponse!
|
||||
|
||||
# Использование расходников фулфилмента
|
||||
useFulfillmentSupplies(input: UseFulfillmentSuppliesInput!): SupplyResponse!
|
||||
@ -278,6 +279,7 @@ export const typeDefs = gql`
|
||||
ogrn: String
|
||||
ogrnDate: DateTime
|
||||
type: OrganizationType!
|
||||
market: String
|
||||
status: String
|
||||
actualityDate: DateTime
|
||||
registrationDate: DateTime
|
||||
@ -335,6 +337,9 @@ export const typeDefs = gql`
|
||||
bik: String
|
||||
accountNumber: String
|
||||
corrAccount: String
|
||||
|
||||
# Рынок для поставщиков
|
||||
market: String
|
||||
}
|
||||
|
||||
input FulfillmentRegistrationInput {
|
||||
@ -516,38 +521,45 @@ export const typeDefs = gql`
|
||||
id: ID!
|
||||
name: String!
|
||||
description: String
|
||||
price: Float!
|
||||
quantity: Int!
|
||||
unit: String
|
||||
category: String
|
||||
status: String
|
||||
date: DateTime!
|
||||
supplier: String
|
||||
minStock: Int
|
||||
currentStock: Int
|
||||
usedStock: Int
|
||||
# Новые поля для Services архитектуры
|
||||
pricePerUnit: Float # Цена за единицу для рецептур (может быть null)
|
||||
unit: String! # Единица измерения: "шт", "кг", "м"
|
||||
warehouseStock: Int! # Остаток на складе (readonly)
|
||||
isAvailable: Boolean! # Есть ли на складе (влияет на цвет)
|
||||
warehouseConsumableId: ID! # Связь со складом
|
||||
# Поля из базы данных для обратной совместимости
|
||||
price: Float! # Из Prisma schema
|
||||
quantity: Int! # Из Prisma schema
|
||||
category: String! # Из Prisma schema
|
||||
status: String! # Из Prisma schema
|
||||
date: DateTime! # Из Prisma schema
|
||||
supplier: String! # Из Prisma schema
|
||||
minStock: Int! # Из Prisma schema
|
||||
currentStock: Int! # Из Prisma schema
|
||||
usedStock: Int! # Из Prisma schema
|
||||
type: String! # Из Prisma schema (SupplyType enum)
|
||||
sellerOwnerId: ID # Из Prisma schema
|
||||
sellerOwner: Organization # Из Prisma schema
|
||||
shopLocation: String # Из Prisma schema
|
||||
imageUrl: String
|
||||
type: SupplyType!
|
||||
sellerOwner: Organization # Селлер-владелец (для расходников селлеров)
|
||||
shopLocation: String # Местоположение в магазине фулфилмента
|
||||
createdAt: DateTime!
|
||||
updatedAt: DateTime!
|
||||
organization: Organization!
|
||||
}
|
||||
|
||||
input SupplyInput {
|
||||
# Для рецептур селлеров - только доступные с ценой
|
||||
type SupplyForRecipe {
|
||||
id: ID!
|
||||
name: String!
|
||||
description: String
|
||||
price: Float!
|
||||
quantity: Int!
|
||||
pricePerUnit: Float! # Всегда не null
|
||||
unit: String!
|
||||
category: String!
|
||||
status: String!
|
||||
date: DateTime!
|
||||
supplier: String!
|
||||
minStock: Int!
|
||||
currentStock: Int!
|
||||
imageUrl: String
|
||||
warehouseStock: Int! # Всегда > 0
|
||||
}
|
||||
|
||||
# Для обновления цены расходника в разделе Услуги
|
||||
input UpdateSupplyPriceInput {
|
||||
pricePerUnit: Float # Может быть null (цена не установлена)
|
||||
}
|
||||
|
||||
input UseFulfillmentSuppliesInput {
|
||||
@ -555,6 +567,14 @@ export const typeDefs = gql`
|
||||
quantityUsed: Int!
|
||||
description: String # Описание использования (например, "Подготовка 300 продуктов")
|
||||
}
|
||||
|
||||
# Устаревшие типы для обратной совместимости
|
||||
input SupplyInput {
|
||||
name: String!
|
||||
description: String
|
||||
price: Float!
|
||||
imageUrl: String
|
||||
}
|
||||
|
||||
type SupplyResponse {
|
||||
success: Boolean!
|
||||
|
Reference in New Issue
Block a user