import asyncio from database import AsyncSessionLocal from models import Category def create_slug(name: str) -> str: """Convert name to slug""" return name.lower().replace(" ", "-").replace("&", "and") async def seed_categories(): """Seed initial categories""" default_categories = [ {"name": "Phones", "slug": "phones", "description": "Smartphones and mobile devices"}, {"name": "Laptops", "slug": "laptops", "description": "Portable computers and notebooks"}, {"name": "Tablets", "slug": "tablets", "description": "Tablet devices and e-readers"}, {"name": "Wearables", "slug": "wearables", "description": "Smartwatches and fitness trackers"}, {"name": "Accessories", "slug": "accessories", "description": "Tech accessories and peripherals"}, {"name": "Gaming", "slug": "gaming", "description": "Gaming consoles and accessories"}, {"name": "Audio", "slug": "audio", "description": "Headphones, speakers, and audio equipment"}, ] async with AsyncSessionLocal() as db: # Check if categories already exist from sqlalchemy import select result = await db.execute(select(Category)) existing = result.scalars().all() if existing: print(f"✓ Categories already exist ({len(existing)} found)") return # Add categories for cat_data in default_categories: category = Category(**cat_data) db.add(category) await db.commit() print(f"✓ Seeded {len(default_categories)} categories successfully") if __name__ == "__main__": asyncio.run(seed_categories())