125 lines
4.9 KiB
Python
125 lines
4.9 KiB
Python
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.'))
|