import { Module } from '@nestjs/common';
import { GroupService } from './group.service';
import { GroupController } from './group.controller';
import { Group } from '@/entities/group.entity';
import { GroupMember } from '@/entities/group-member.entity';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UsersModule } from '@/users/users.module';
import { AuthModule } from '@/auth/auth.module';
import { Trip } from '@/entities/trip.entity';
import { Notification } from '@/entities/notification.entity';
import { NotificationService } from '@/notification/notification.service';
import { NotificationGateway } from '@/notification/notification.gateway';
import { JwtService } from '@nestjs/jwt';
import { PushModule } from '@/push/push.module';
import { Expense } from '@/entities/expense.entity';
import { Map } from '@/entities/map.entity';
import { ChatModule } from '@/chat/chat.module';
import { Timeline } from '@/entities/timeline.entity';

@Module({
  imports: [
    TypeOrmModule.forFeature([Group, GroupMember, Trip, Expense, Notification, Map, Timeline]),
    UsersModule,
    AuthModule,
    PushModule,
    ChatModule,
  ],
  controllers: [GroupController],
  providers: [
    GroupService,
    NotificationService,
    NotificationGateway,
    JwtService,
  ],
  exports: [GroupService],
})
export class GroupModule {}
