import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ExpenseService } from './expense.service';
import { ExpenseController } from './expense.controller';
import { Expense } from '@/entities/expense.entity';
import { ExpenseParticipant } from '@/entities/expense-participants.entity';
import { Trip } from '@/entities/trip.entity';
import { AuthModule } from '@/auth/auth.module';
import { GroupMember } from '@/entities/group-member.entity';
import { Notification } from '@/entities/notification.entity';
import { NotificationService } from '@/notification/notification.service';
import { NotificationGateway } from '@/notification/notification.gateway';
import { TripModule } from '@/trip/trip.module';
import { Group } from '@/entities/group.entity';
import { User } from '@/entities/user.entity';
import { PushModule } from '@/push/push.module';
import { Map } from '@/entities/map.entity';
import { Timeline } from '@/entities/timeline.entity';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      Expense,
      ExpenseParticipant,
      Trip,
      Group,
      GroupMember,
      User,
      Notification,
      Map,
      Timeline,
    ]),
    AuthModule,
    PushModule,
    TripModule,
  ],
  controllers: [ExpenseController],
  providers: [ExpenseService, NotificationService, NotificationGateway],
})
export class ExpenseModule {}
