refactor: Заменить сущность Магазин (Shop) на Склад (Warehouse)

Упрощена логика системы путём замены отдельной сущности "Магазин"
на универсальную сущность "Склад", которая может использоваться
как точка самовывоза.

Изменения:
- Расширена модель Warehouse: добавлены адрес, контакты, флаг is_pickup_point
- Модель Order: поле pickup_shop заменено на pickup_warehouse
- Обновлены все формы, сервисы, views, admin для работы со складами
- Обновлены шаблоны HTML и JavaScript код
- Удалено приложение shops полностью
- Пересозданы миграции БД
- Обновлён навбар (удалена ссылка на магазины)

Преимущества:
- Упрощена архитектура системы
- Единая точка управления складами и точками самовывоза
- Интеграция с системой инвентаризации

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-14 23:50:30 +03:00
parent d3ac875a0e
commit 4a4bd437b9
37 changed files with 99 additions and 740 deletions

View File

@@ -12,7 +12,7 @@ from decimal import Decimal
from orders.models import Order, OrderItem, Address
from customers.models import Customer
from shops.models import Shop
from inventory.models import Warehouse
from products.models import Product
@@ -56,10 +56,10 @@ class Command(BaseCommand):
return
addresses = list(Address.objects.all())
shops = list(Shop.objects.all())
warehouses = list(Warehouse.objects.filter(is_pickup_point=True))
if not addresses and not shops:
self.stdout.write(self.style.ERROR('Нет ни адресов, ни магазинов! Создайте хотя бы что-то одно.'))
if not addresses and not warehouses:
self.stdout.write(self.style.ERROR('Нет ни адресов, ни складов для самовывоза! Создайте хотя бы что-то одно.'))
return
# Статусы и их вероятности
@@ -111,8 +111,8 @@ class Command(BaseCommand):
# Для доставки выбираем случайный адрес (адреса теперь привязаны к заказам)
order.delivery_address = random.choice(addresses)
order.delivery_cost = Decimal(random.randint(200, 500))
elif shops:
order.pickup_shop = random.choice(shops)
elif warehouses:
order.pickup_warehouse = random.choice(warehouses)
order.delivery_cost = Decimal(0)
# Дата и время