import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { DashboardController } from './dashboard.controller';
import { DashboardService } from './dashboard.service';
import { QueryEntity } from '../../entities/query.entity';
import { BookingEntity } from '../../entities/booking.entity';
import { QueryQuoteEntity } from '../../entities/query-quote.entity';
import { DriverEntity } from '../../entities/driver.entity';
import { AuditLogEntity } from '../../entities/audit-log.entity';
import { UserEntity } from '../../entities/user.entity';
import { AuthModule } from '../../auth/auth.module';
import { UserModule } from '../user/user.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([
      QueryEntity,
      BookingEntity,
      QueryQuoteEntity,
      DriverEntity,
      AuditLogEntity,
      UserEntity,
    ]),
    AuthModule,
    // Provides UserReportingService for role-based dashboard scoping —
    // Sales Head sees only their own + reporting-chain data unless the
    // role carries view_all_bookings_queries (client policy 2026-10-09).
    UserModule,
  ],
  controllers: [DashboardController],
  providers: [DashboardService],
})
export class DashboardModule {}
