import { Injectable } from "@nestjs/common"
import { CategoriesService } from "../../../modules/categories/categories.service"
import { categories } from "../../../constants/categories.constant"
import { CreateCategoryDto } from "../../../modules/categories/dto/create-category.dto"

@Injectable()
export class CategorySeedService {
  constructor(private readonly categoryService: CategoriesService) {}

  async run() {
    try {
      for (const category of categories) {
        const isCategoryExist =
          await this.categoryService.checkCategoryExist(category)

        if (!isCategoryExist) {
          const user = new CreateCategoryDto()
          user.name = category

          await this.categoryService.create(user)

          console.log("Category seeder has been run successfully!")
        } else {
          console.log("Categories already exist, seeding skipped.")
        }
      }
    } catch (error) {
      console.error("Error running Category seeder:", error)
    }
  }
}
