from django.core.management.base import BaseCommand
from core.models import Category, Vendor, Product
from django.utils.text import slugify

class Command(BaseCommand):
    help = 'Seeds initial data for Pasar UMKM Pemagarsari'

    def handle(self, *args, **options):
        # Create Categories
        categories_data = [
            {'name': 'Makanan', 'icon': 'fa-utensils'},
            {'name': 'Minuman', 'icon': 'fa-coffee'},
            {'name': 'Kerajinan', 'icon': 'fa-palette'},
            {'name': 'Pakaian', 'icon': 'fa-tshirt'},
            {'name': 'Jasa', 'icon': 'fa-tools'},
            {'name': 'Pertanian', 'icon': 'fa-leaf'},
        ]
        
        cats = {}
        for cat in categories_data:
            obj, created = Category.objects.get_or_create(
                name=cat['name'],
                defaults={'icon': cat['icon']}
            )
            cats[cat['name']] = obj
            if created:
                self.stdout.write(self.style.SUCCESS(f'Created category: {cat["name"]}'))

        # Create Vendors
        vendors_data = [
            {
                'name': 'Dapur Bu Siti',
                'whatsapp_number': '628123456789',
                'description': 'Spesialis kue basah dan masakan tradisional khas Pemagarsari.',
                'address': 'RT 01 RW 02, Desa Pemagarsari'
            },
            {
                'name': 'Kerajinan Bambu Jaya',
                'whatsapp_number': '628987654321',
                'description': 'Produk anyaman bambu berkualitas tinggi untuk dekorasi rumah.',
                'address': 'RT 05 RW 01, Desa Pemagarsari'
            },
            {
                'name': 'Kopi Desa Kita',
                'whatsapp_number': '628555444333',
                'description': 'Kopi asli hasil perkebunan Desa Pemagarsari yang diproses secara tradisional.',
                'address': 'RT 03 RW 03, Desa Pemagarsari'
            }
        ]

        vens = {}
        for ven in vendors_data:
            obj, created = Vendor.objects.get_or_create(
                name=ven['name'],
                defaults={
                    'whatsapp_number': ven['whatsapp_number'],
                    'description': ven['description'],
                    'address': ven['address']
                }
            )
            vens[ven['name']] = obj
            if created:
                self.stdout.write(self.style.SUCCESS(f'Created vendor: {ven["name"]}'))

        # Create Products
        products_data = [
            {
                'name': 'Kue Klepon Lumer',
                'vendor': vens['Dapur Bu Siti'],
                'category': cats['Makanan'],
                'price': 15000,
                'description': 'Klepon dengan gula merah cair yang melimpah dan taburan kelapa gurih. Isi 10 pcs.'
            },
            {
                'name': 'Nasi Liwet Komplit',
                'vendor': vens['Dapur Bu Siti'],
                'category': cats['Makanan'],
                'price': 25000,
                'description': 'Nasi liwet dengan lauk ayam goreng, tahu tempe, sambal, dan lalapan.'
            },
            {
                'name': 'Tas Anyaman Bambu',
                'vendor': vens['Kerajinan Bambu Jaya'],
                'category': cats['Kerajinan'],
                'price': 85000,
                'description': 'Tas jinjing elegan hasil anyaman tangan pengrajin lokal. Kuat dan ramah lingkungan.'
            },
            {
                'name': 'Wadah Serbaguna',
                'vendor': vens['Kerajinan Bambu Jaya'],
                'category': cats['Kerajinan'],
                'price': 45000,
                'description': 'Satu set wadah serbaguna untuk keperluan dapur atau dekorasi.'
            },
            {
                'name': 'Kopi Robusta Pemagarsari (250g)',
                'vendor': vens['Kopi Desa Kita'],
                'category': cats['Minuman'],
                'price': 35000,
                'description': 'Bubuk kopi robusta pilihan dengan aroma yang kuat dan rasa yang mantap.'
            },
            {
                'name': 'Gula Semut Aren',
                'vendor': vens['Kopi Desa Kita'],
                'category': cats['Minuman'],
                'price': 20000,
                'description': 'Gula aren kualitas premium, sangat cocok untuk pemanis kopi atau minuman lainnya.'
            }
        ]

        for prod in products_data:
            obj, created = Product.objects.get_or_create(
                name=prod['name'],
                vendor=prod['vendor'],
                defaults={
                    'category': prod['category'],
                    'price': prod['price'],
                    'description': prod['description']
                }
            )
            if created:
                self.stdout.write(self.style.SUCCESS(f'Created product: {prod["name"]}'))

        self.stdout.write(self.style.SUCCESS('Successfully seeded initial data.'))
