import { Module } from "@nestjs/common"
import { TypeOrmModule } from "@nestjs/typeorm"
import { FleetManagement } from "src/modules/fleet-management/entities/fleet-management.entity"
import { FleetManagementRepository } from "src/modules/fleet-management/repositories/fleet-management.repository"
import { IncidentType } from "src/modules/incident-reporting/entities/incident-type.entity"
import { IncidentTypeRepository } from "src/modules/incident-reporting/repositories/incident-types.repository"
import { IncidentTypeSeedService } from "./incident-types-seed.service"
import { IncidentReportingService } from "src/modules/incident-reporting/v1/incident-reporting.service"
import { IncidentReportingRepository } from "src/modules/incident-reporting/repositories/incident-report.repository"
import { IncidentReporting } from "src/modules/incident-reporting/entities/incident-reporting.entity"
import { TeamMemberRepository } from "src/modules/team-member/repositories/team_member.repository"
import { TeamMember } from "src/modules/team-member/entities/team_member.entity"
import { RoleRepository } from "src/modules/role/repositories/role.repository"
import { IncidentImageRepository } from "src/modules/incident-reporting/repositories/incident-image.repository"
import { TripRepository } from "src/modules/trips/repositories/trip.repository"
import { Role } from "src/modules/role/entities/role.entity"
import { IncidentImage } from "src/modules/incident-reporting/entities/incident-images.entity"
import { Trip } from "src/modules/trips/entities/trip.entity"
import { UserLoginRepository } from "src/modules/auth/repositories/user-login.repository"
import { UserLogin } from "src/modules/auth/entities/user-login.entity"
import { AuthService } from "src/modules/auth/v1/auth.service"
import { NotificationService } from "src/modules/notification/v1/notification.service"
import { AuthRepository } from "src/modules/auth/repositories/auth.repository"
import { UserOldPasswordRepository } from "src/modules/auth/repositories/old-passwords.repository"
import { RolePermissionRepository } from "src/modules/role-permission/repositories/role-permission.repository"
import { NotificationRepository } from "src/modules/notification/repositories/notification.repository"
import { FirebaseNotificationService } from "src/modules/notification/v1/firebase-notification.service"
import { Auth } from "src/modules/auth/entities/auth.entity"
import { UserOldPassword } from "src/modules/auth/entities/user-old-password.entity"
import { RolePermission } from "src/modules/role-permission/entities/role-permission.entity"
import { CustomerNotificationRepository } from "src/modules/notification/repositories/customer_notification.repository"
import { CustomerNotification } from "src/modules/notification/entities/customer-notification.entity"
import { CustomerLoginRepository } from "src/modules/customers/repositories/customer-login.repository"
import { CustomerLogin } from "src/modules/customers/entities/customer_login.entity"

@Module({
  imports: [
    TypeOrmModule.forFeature([
      FleetManagement,
      IncidentType,
      IncidentReporting,
      TeamMember,
      Role,
      IncidentImage,
      Trip,
      UserLogin,
      Auth,
      UserOldPassword,
      RolePermission,
      CustomerNotification,
      CustomerLogin,
    ]),
  ],
  providers: [
    FleetManagementRepository,
    IncidentTypeRepository,
    IncidentTypeSeedService,
    IncidentReportingService,
    IncidentReportingRepository,
    TeamMemberRepository,
    RoleRepository,
    IncidentImageRepository,
    TripRepository,
    UserLoginRepository,
    AuthService,
    NotificationService,
    AuthRepository,
    UserOldPasswordRepository,
    RolePermissionRepository,
    NotificationRepository,
    FirebaseNotificationService,
    CustomerNotificationRepository,
    CustomerLoginRepository,
  ],
  exports: [IncidentTypeModule],
})
export class IncidentTypeModule {}
