import frappe
from frappe import _

def create_item_groups():
    """
    Создает Item Groups согласно фикстурам
    """
    
    # Определяем возможные названия родительской группы
    parent_names = ["All Item Groups", "Bütün Element Qrupları"]
    parent_name = None
    
    # Проверяем какое название родительской группы существует
    for name in parent_names:
        if frappe.db.exists("Item Group", name):
            parent_name = name
            break
    
    if not parent_name:
        print("Родительская группа не найдена. Используем 'All Item Groups'")
        parent_name = "All Item Groups"
    
    # Данные групп из фикстур
    item_groups = [
        {
            "item_group_name": "Neft Məhsulları",
            "is_group": 1,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Yanacaq növləri", 
            "is_group": 0,
            "parent_item_group": "Neft Məhsulları"
        },
        {
            "item_group_name": "Faydalı qazıntılar",
            "is_group": 1,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Xam neft - ton",
            "is_group": 0,
            "parent_item_group": parent_name  # В фикстуре old_parent не указан, используем корневую
        },
        {
            "item_group_name": "Təbii qaz - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Filiz faydalı qazıntıları: bütün növ metallar - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Mişar daşları - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Üzlük daşları - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Seolit - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Barit - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Yüngül doldurucular üçün gillər - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Vulkan külü və pemza - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Kvars qumları - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Sement xammalı - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Duz - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Qiymətli və yarımqiymətli bəzək daşları - karat / qram",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Yodlu bromlu sular - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Mineral sular - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Bentonit gillər - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Kərpic-kirəmit gilləri - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Tikinti qumları - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Çınqıl xammalı - m³",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Gips, gəc - ton",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "İdman, mərc və lotoreya oyunları",
            "is_group": 1,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "İdman və mərc oyunları",
            "is_group": 0,
            "parent_item_group": parent_name
        },
        {
            "item_group_name": "Lotoreya oyunları",
            "is_group": 0,
            "parent_item_group": parent_name
        }
    ]
    
    created_count = 0
    skipped_count = 0
    
    for group_data in item_groups:
        try:
            # Проверяем, существует ли уже такая группа
            if frappe.db.exists("Item Group", group_data["item_group_name"]):
                print(f"Группа '{group_data['item_group_name']}' уже существует, пропускаем...")
                skipped_count += 1
                continue
            
            # Создаем новую Item Group
            item_group = frappe.new_doc("Item Group")
            item_group.item_group_name = group_data["item_group_name"]
            item_group.is_group = group_data["is_group"]
            item_group.parent_item_group = group_data["parent_item_group"]
            
            # Сохраняем документ
            item_group.insert(ignore_permissions=True)
            frappe.db.commit()
            
            print(f"✓ Создана группа: {group_data['item_group_name']}")
            created_count += 1
            
        except Exception as e:
            print(f"✗ Ошибка при создании группы '{group_data['item_group_name']}': {str(e)}")
            continue
    
    print(f"\nРезультат:")
    print(f"Создано новых групп: {created_count}")
    print(f"Пропущено существующих: {skipped_count}")
    print(f"Всего обработано: {len(item_groups)}")

def delete_all_created_groups():
    """
    Функция для удаления всех созданных групп (для отката)
    ВНИМАНИЕ: Используйте осторожно!
    """
    group_names = [
        "Neft Məhsulları", "Yanacaq növləri", "Faydalı qazıntılar",
        "Xam neft - ton", "Təbii qaz - m³", 
        "Filiz faydalı qazıntıları: bütün növ metallar - ton",
        "Mişar daşları - m³", "Üzlük daşları - m³", "Seolit - ton",
        "Barit - ton", "Yüngül doldurucular üçün gillər - m³",
        "Vulkan külü və pemza - m³", "Kvars qumları - ton",
        "Sement xammalı - ton", "Duz - ton",
        "Qiymətli və yarımqiymətli bəzək daşları - karat / qram",
        "Yodlu bromlu sular - m³", "Mineral sular - m³",
        "Bentonit gillər - ton", "Kərpic-kirəmit gilləri - m³",
        "Tikinti qumları - m³", "Çınqıl xammalı - m³",
        "Gips, gəc - ton", "İdman, mərc və lotoreya oyunları",
        "İdman və mərc oyunları", "Lotoreya oyunları"
    ]
    
    deleted_count = 0
    
    for group_name in group_names:
        try:
            if frappe.db.exists("Item Group", group_name):
                frappe.delete_doc("Item Group", group_name)
                print(f"✓ Удалена группа: {group_name}")
                deleted_count += 1
        except Exception as e:
            print(f"✗ Ошибка при удалении группы '{group_name}': {str(e)}")
    
    frappe.db.commit()
    print(f"\nУдалено групп: {deleted_count}")

# Основная функция для запуска
if __name__ == "__main__":
    create_item_groups()