import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Trip } from '@/entities/trip.entity';
import { Group } from '@/entities/group.entity';
import { GroupMember } from '@/entities/group-member.entity';
import { TripController } from './trip.controller';
import { AuthModule } from '@/auth/auth.module';
import { NotificationService } from '@/notification/notification.service';
import { Notification } from '@/entities/notification.entity';
import { NotificationGateway } from '@/notification/notification.gateway';
import { UsersModule } from '@/users/users.module';
import { PushModule } from '@/push/push.module';
import { TripService } from './trip.service';
import { TripFundModule } from '@/trip-fund/trip-fund.module';
import { Map } from '@/entities/map.entity';
import { TripClosingMailService } from './trip-closing-mail.service';
import { Timeline } from '@/entities/timeline.entity';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      Trip,
      Group,
      GroupMember,
      Notification,
      TripFundModule,
      Map,
      Timeline,
    ]),
    UsersModule,
    AuthModule,
    PushModule,
  ],
  providers: [TripService, TripClosingMailService, NotificationService, NotificationGateway],
  controllers: [TripController],
  exports: [TripService],
})
export class TripModule {}
