import json
from pathlib import Path
from django.core.management.base import BaseCommand
from core.models import Branch,Category,Product
class Command(BaseCommand):
    help='ورود اولیه سه شعبه و ۱۵۷ کالا با واحد و حداقل موجودی (بدون ایجاد سفارش آزمایشی)'
    def handle(self,*args,**options):
        data=json.loads((Path(__file__).resolve().parents[2]/'data'/'default_catalog.json').read_text(encoding='utf-8'))
        for x in data['branches']:
            Branch.objects.get_or_create(name=x['name'],defaults={'is_workshop':x['is_workshop']})
        by_slug={}
        for x in data['categories']:
            obj,_=Category.objects.get_or_create(slug=x['slug'],defaults={'name':x['name'],'position':x['position'],'supplier':x['supplier'],'order_note':x['order_note'],'parent':by_slug.get(x['parent'])})
            by_slug[x['slug']]=obj
        added=0
        for x in data['products']:
            _,created=Product.objects.get_or_create(category=by_slug[x['category']],name=x['name'],defaults={'unit':x['unit'],'minimum':x['minimum'],'estimated_price':0,'note':x['note'],'position':x['position']})
            added+=int(created)
        self.stdout.write(self.style.SUCCESS(f'داده اولیه آماده شد. {added} محصول تازه اضافه شد.'))
        self.stdout.write('قیمت محصولات موجود تغییر نکرد و اطلاعات قبلی محفوظ است.')
