import { Injectable } from "@nestjs/common"
import { Role } from "../../../modules/role/entities/role.entity"
import { RoleService } from "../../../modules/role/role.service"
import { roleConst } from "../../../constants/role.constant"
import { RoleRepository } from "src/modules/role/repositories/role.repository"

@Injectable()
export class RoleSeedService {
  constructor(
    private readonly roleService: RoleService,
    private readonly roleRepository: RoleRepository,
  ) {}

  async run() {
    try {
      for (const roleName of roleConst) {
        const isRoleExist = await this.roleService.checkRoleExist(roleName)

        if (!isRoleExist) {
          const role = new Role()
          role.name = roleName
          role.status = 1 // or whatever status you intend
          await this.roleRepository.save(role)

          console.log(`Role seeder has added the role: ${roleName}`)
        } else {
          console.log(`Role ${roleName} already exists, seeding skipped.`)
        }
      }
    } catch (error) {
      console.error("Error running Role seeder:", error)
    }
  }
}
