Создан TenantOnboardingService как единый источник истины для: - Активации заявки на регистрацию тенанта - Создания Client, Domain, Subscription - Инициализации системных данных (Customer, статусы, способы оплаты, склад, витрина) Новые сервисы: - TenantOnboardingService (tenants/services/onboarding.py) - WarehouseService (inventory/services/warehouse_service.py) - ShowcaseService (inventory/services/showcase_service.py) - PaymentMethodService (orders/services/payment_method_service.py) Рефакторинг: - admin.py: 220 строк → 5 строк (делегирование сервису) - init_tenant_data.py: 259 строк → 68 строк - activate_registration.py: использует сервис - Тесты обновлены для вызова сервиса напрямую При создании тенанта автоматически создаются склад и витрина по умолчанию. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Management команда для создания стандартных способов оплаты.
|
|
"""
|
|
from django.core.management.base import BaseCommand
|
|
from orders.services import PaymentMethodService
|
|
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Создаёт стандартные способы оплаты для цветочного магазина'
|
|
|
|
def handle(self, *args, **options):
|
|
results = PaymentMethodService.create_default_methods()
|
|
|
|
created_count = 0
|
|
for method, created in results:
|
|
if created:
|
|
created_count += 1
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'✓ Создан способ оплаты: {method.name}')
|
|
)
|
|
else:
|
|
self.stdout.write(
|
|
self.style.WARNING(f'• Уже существует: {method.name}')
|
|
)
|
|
|
|
self.stdout.write(
|
|
self.style.SUCCESS(f'\nГотово! Создано {created_count} новых способов оплаты.')
|
|
)
|