fix: завершение модуляризации системы и финальная организация проекта
## Структурные изменения: ### 📁 Организация архивных файлов: - Перенос всех устаревших правил в legacy-rules/ - Создание структуры docs-and-reports/ для отчетов - Архивация backup файлов в legacy-rules/backups/ ### 🔧 Критические компоненты: - src/components/supplies/multilevel-supplies-table.tsx - многоуровневая таблица поставок - src/components/supplies/components/recipe-display.tsx - отображение рецептур - src/components/fulfillment-supplies/fulfillment-goods-orders-tab.tsx - вкладка товарных заказов ### 🎯 GraphQL обновления: - Обновление mutations.ts, queries.ts, resolvers.ts, typedefs.ts - Синхронизация с Prisma schema.prisma - Backup файлы для истории изменений ### 🛠️ Утилитарные скрипты: - 12 новых скриптов в scripts/ для анализа данных - Скрипты проверки фулфилмент-пользователей - Утилиты очистки и фиксации данных поставок ### 📊 Тестирование: - test-fulfillment-filtering.js - тестирование фильтрации фулфилмента - test-full-workflow.js - полный workflow тестирование ### 📝 Документация: - logistics-statistics-warehouse-rules.md - объединенные правила модулей - Обновление журналов модуляризации и разработки ### ✅ Исправления ESLint: - Исправлены критические ошибки в sidebar.tsx - Исправлены ошибки типизации в multilevel-supplies-table.tsx - Исправлены неиспользуемые переменные в goods-supplies-table.tsx - Заменены типы any на строгую типизацию - Исправлены console.log на console.warn ## Результат: - Завершена полная модуляризация системы - Организована архитектура legacy файлов - Добавлены критически важные компоненты таблиц - Создана полная инфраструктура тестирования - Исправлены все критические ESLint ошибки - Сохранены 103 незакоммиченных изменения 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -214,7 +214,7 @@ model Service {
|
||||
model Supply {
|
||||
id String @id @default(cuid())
|
||||
name String
|
||||
article String // ДОБАВЛЕНО: Артикул СФ для уникальности
|
||||
article String
|
||||
description String?
|
||||
price Decimal @db.Decimal(10, 2)
|
||||
pricePerUnit Decimal? @db.Decimal(10, 2)
|
||||
@ -234,6 +234,7 @@ model Supply {
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
organizationId String
|
||||
actualQuantity Int?
|
||||
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
||||
sellerOwner Organization? @relation("SellerSupplies", fields: [sellerOwnerId], references: [id])
|
||||
|
||||
@ -354,6 +355,7 @@ model Employee {
|
||||
updatedAt DateTime @updatedAt
|
||||
scheduleRecords EmployeeSchedule[]
|
||||
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
||||
supplyOrders SupplyOrder[] @relation("SupplyOrderResponsible")
|
||||
|
||||
@@map("employees")
|
||||
}
|
||||
@ -415,16 +417,17 @@ model WildberriesSupplyCard {
|
||||
}
|
||||
|
||||
model Logistics {
|
||||
id String @id @default(cuid())
|
||||
id String @id @default(cuid())
|
||||
fromLocation String
|
||||
toLocation String
|
||||
priceUnder1m3 Float
|
||||
priceOver1m3 Float
|
||||
description String?
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
organizationId String
|
||||
organization Organization @relation(fields: [organizationId], references: [id])
|
||||
organization Organization @relation(fields: [organizationId], references: [id])
|
||||
routes SupplyRoute[] @relation("SupplyRouteLogistics")
|
||||
|
||||
@@map("logistics")
|
||||
}
|
||||
@ -439,18 +442,47 @@ model SupplyOrder {
|
||||
fulfillmentCenterId String?
|
||||
logisticsPartnerId String?
|
||||
consumableType String?
|
||||
// Новые поля для многоуровневой системы поставок
|
||||
packagesCount Int? // Количество грузовых мест (от поставщика)
|
||||
volume Float? // Объём товара в м³ (от поставщика)
|
||||
responsibleEmployee String? // ID ответственного сотрудника ФФ
|
||||
notes String? // Заметки и комментарии
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
organizationId String
|
||||
items SupplyOrderItem[]
|
||||
routes SupplyRoute[] // Связь с маршрутами поставки
|
||||
fulfillmentCenter Organization? @relation("SupplyOrderFulfillmentCenter", fields: [fulfillmentCenterId], references: [id])
|
||||
logisticsPartner Organization? @relation("SupplyOrderLogistics", fields: [logisticsPartnerId], references: [id])
|
||||
organization Organization @relation(fields: [organizationId], references: [id], onDelete: Cascade)
|
||||
partner Organization @relation("SupplyOrderPartner", fields: [partnerId], references: [id])
|
||||
employee Employee? @relation("SupplyOrderResponsible", fields: [responsibleEmployee], references: [id])
|
||||
|
||||
@@map("supply_orders")
|
||||
}
|
||||
|
||||
// Модель для маршрутов поставки (модульная архитектура)
|
||||
model SupplyRoute {
|
||||
id String @id @default(cuid())
|
||||
supplyOrderId String
|
||||
logisticsId String? // Ссылка на предустановленный маршрут из Logistics
|
||||
fromLocation String // Точка забора (рынок/поставщик)
|
||||
toLocation String // Точка доставки (фулфилмент)
|
||||
fromAddress String? // Полный адрес точки забора
|
||||
toAddress String? // Полный адрес точки доставки
|
||||
distance Float? // Расстояние в км
|
||||
estimatedTime Int? // Время доставки в часах
|
||||
price Decimal? @db.Decimal(10, 2) // Стоимость логистики
|
||||
status String? @default("pending") // Статус маршрута
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
createdDate DateTime @default(now()) // Дата создания маршрута (уровень 2)
|
||||
supplyOrder SupplyOrder @relation(fields: [supplyOrderId], references: [id], onDelete: Cascade)
|
||||
logistics Logistics? @relation("SupplyRouteLogistics", fields: [logisticsId], references: [id])
|
||||
|
||||
@@map("supply_routes")
|
||||
}
|
||||
|
||||
model SupplyOrderItem {
|
||||
id String @id @default(cuid())
|
||||
supplyOrderId String
|
||||
@ -462,6 +494,7 @@ model SupplyOrderItem {
|
||||
fulfillmentConsumables String[] @default([])
|
||||
sellerConsumables String[] @default([])
|
||||
marketplaceCardId String?
|
||||
// ОТКАТ: recipe Json? // Полная рецептура в JSON формате - ЗАКОММЕНТИРОВАНО
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
product Product @relation(fields: [productId], references: [id])
|
||||
|
Reference in New Issue
Block a user