import { DataSource } from 'typeorm';
import { Category } from '../../modules/products/entities/category.entity';

export const categoriesSeed = async (dataSource: DataSource): Promise<void> => {
  const categoryRepository = dataSource.getRepository(Category);

  const categories = [
    {
      id: 'cat-beauty-industry',
      name: 'Beauty Industry',
      slug: 'beauty-industry',
      description: 'Professional beauty tools, accessories, and equipment',
      imageUrl: '/images/categories/beauty-industry.jpg',
      sortOrder: 1,
      isActive: true,
    },
    {
      id: 'cat-makeup',
      name: 'Makeup',
      slug: 'makeup',
      description: 'Cosmetics, palettes, applicators, and beauty essentials',
      imageUrl: '/images/categories/makeup.jpg',
      sortOrder: 2,
      isActive: true,
    },
    {
      id: 'cat-toiletries',
      name: 'Toiletries',
      slug: 'toiletries',
      description: 'Daily hygiene products, bath essentials, and personal care',
      imageUrl: '/images/categories/toiletries.jpg',
      sortOrder: 3,
      isActive: true,
    },
    {
      id: 'cat-sanitary-hygiene',
      name: 'Sanitary Hygiene',
      slug: 'sanitary-hygiene',
      description: 'Menstrual care, intimate hygiene, and wellness products',
      imageUrl: '/images/categories/sanitary-hygiene.jpg',
      sortOrder: 4,
      isActive: true,
    },
    {
      id: 'cat-perfumes',
      name: 'Perfumes',
      slug: 'perfumes',
      description: 'Fragrances, body mists, colognes, and scent collections',
      imageUrl: '/images/categories/perfumes.jpg',
      sortOrder: 5,
      isActive: true,
    },
    {
      id: 'cat-skin-care',
      name: 'Skin Care',
      slug: 'skin-care',
      description: 'Serums, moisturizers, treatments, and skincare routines',
      imageUrl: '/images/categories/skincare.jpg',
      sortOrder: 6,
      isActive: true,
    },
    {
      id: 'cat-clothing',
      name: 'Clothing',
      slug: 'clothing',
      description: 'Apparel, accessories, lingerie, and fashion items',
      imageUrl: '/images/categories/clothing.jpg',
      sortOrder: 7,
      isActive: true,
    },
  ];

  for (const category of categories) {
    const exists = await categoryRepository.findOne({ where: { slug: category.slug } });
    if (!exists) {
      await categoryRepository.save(category);
    }
  }

  console.log(`Seeded ${categories.length} product categories`);
};