from django.core.management import BaseCommand
from tqdm import tqdm

from store.models import Category, PaymentMethod


category_names = {
  "Обувь": [
    "Кроссовки",
    "Кеды",
    "Пляжная обувь",
    "Туфли",
    "Босоножки",
    "Сандвли",
    "Лоаферы",
    "Мокасины",
    "Ботинки",
    "Полуботинки",
    "Сапоги",
    "Домашняя обувь",
    "Другое",
  ],

  "Верхняя одежда": [
    "Куртка летняя",
    "Куртка зимняя",
    "Худи",
    "Толстовка",
    "Футболка",
    "Майка",
    "Лонгслив",
    "Рубашка",
    "Платье",
    "Жилетка",
    "Свитер",
    "Топ",
    "Другое",
  ],

  "Нижнее белье": [
    "Брюки",
    "Штаны",
    "Джинсы",
    "Леггинсы",
    "Шорты",
    "Юбка",
    "Колготки",
    "Другое",
  ],

  "Сумки": [
    "Женская сумка",
    "Мужская сумка",
    "Рюкзак",
    "Кошелек",
    "Визитница",
    "Клатч",
    "Шоппер",
    "Другое",
  ],

  "Косметика": [
    "Для лица",
    "Для тела",
    "Для губ",
    "Для ресниц",
    "Для волос",
    "Для бровей",
    "Для рук",
    "Для ног",
    "Другое",
  ],

  "Аксессуары": [
    "Шарф",
    "Шапка",
    "Кепка",
    "Очки",
    "Украшения",
    "Перчатки",
    "Носки",
    "Нижнее белье",
    "Другое",
  ],

  "Техника": [
    "Телефон",
    "Планшет",
    "Ноутбук",
    "Приставка",
    "Фен",
    "Скайлер",
    "Пылесос",
    "Увлажнитель",
    "Бытовая техника",
    "Другое",
  ],

  "Часы": ["Механические", "Электронные"],
  "Игрушки": ["Lego", "Фигурка", "Мягкая", "Кукла", "Набор", "Другое"],
  "Товары для дома": ["Полотенце", "Ковер", "Набор", "Косметичка", "Другое"],
  "Еда и напитки": ["Еда", "Напиток"],
  "Другое": [],
}

payment_methods = {
    "alfa": {
        "name": "Альфабанк",
        "cardnumber": "",
        "requisites": ""
    },
    "ralf": {
        "name": "Райффайзен Банк",
        "cardnumber": "",
        "requisites": ""
    },
    "tink": {
        "name": "Тинькофф",
        "cardnumber": "",
        "requisites": ""
    }
}


def create_categories():
    for cat_name, subcat_names in tqdm(category_names.items(), desc="Creating categories"):
        category, _ = Category.objects.get_or_create(name=cat_name, parent=None)
        for subcat_name in subcat_names:
            Category.objects.get_or_create(name=subcat_name, parent_id=category.id)


def create_payment_types():
    for slug, data in tqdm(payment_methods.items(), desc="Creating payment methods"):
        PaymentMethod.objects.get_or_create(slug=slug, defaults=data)


class Command(BaseCommand):
    help = ''' Create root categories '''

    def handle(self, *args, **kwargs):
        create_categories()
        create_payment_types()

