import { Injectable } from "@nestjs/common"
import { PermissionService } from "../../../modules/permission/v1/permission.service"
import { permissionConst } from "src/constants/permission.constant"

@Injectable()
export class PermissionSeedService {
  constructor(private readonly permissionService: PermissionService) {}

  async run() {
    try {
      for (let i = 0; i < permissionConst.length; i++) {
        const permissionName = permissionConst[i]
        const isPermissionExist =
          await this.permissionService.chekPermissionExist(permissionName)

        if (!isPermissionExist) {
          const data = {
            permission_type: permissionName,
            status: i + 1,
          }

          await this.permissionService.createPermission(data)
          console.log(
            `Permission seeder has added the permission: ${permissionName} with status ${i + 1}`,
          )
        } else {
          console.log(
            `Permission ${permissionName} already exists, seeding skipped.`,
          )
        }
      }
    } catch (error) {
      console.error("Error running Permission seeder:", error)
    }
  }
}
