import { Module } from '@nestjs/common';
import { AdminService } from './admin.service';
import { AdminController } from './admin.controller';
import { JwtService } from '@nestjs/jwt';
import { MongooseModule } from '@nestjs/mongoose';
import { Admin, AdminSchema } from '../schema/admin.schema';
import { User, UserSchema } from 'src/schema/user.schema';
import { Shipment, ShipmentSchema } from 'src/schema/shipment.schema';
import {
  Shipment_Mode,
  Shipment_Mode_Schema,
} from 'src/schema/map-shipment-mode.schema';
import {
  Map_Shipment_Attachment,
  Map_Shipment_Attachment_Schema,
} from 'src/schema/map-shipment-attachment';
import {
  Map_Shipment_Status,
  MapShipmentStatusSchema,
} from 'src/schema/map_shipment_status.schema';
import { Inquiry, InquirySchema } from 'src/schema/inquiry.schema';
import {
  Map_Company_Employee,
  Map_Company_Employee_Schema,
} from 'src/schema/map-company-employees.schema';
import { Otp, OtpSchema } from 'src/schema/otp.schema';
import {
  Notification,
  NotificationSchema,
} from 'src/schema/notifications.schema';
import {
  Map_Inquiry_Reply,
  Map_Inquiry_Reply_Schema,
} from 'src/schema/map-inquiry-reply.schema';
import {
  Map_Inquiry_Attachment,
  Map_Inquiry_Attachment_Schema,
} from 'src/schema/map-inquiry-attachments';
import { SendFirebaseNotifications } from 'src/utils/send-notification.helper';
import {
  Map_User_Device,
  Map_User_Device_Schema,
} from 'src/schema/map-user-device.schema';
import {
  Map_Shipment_Commodity,
  Map_Shipment_Commodity_Schema,
} from 'src/schema/map-shipment-commodity.schema';
import {SendMsg91PasswordService} from 'src/utils/send-msg91-password.helper';
import { Quotation, QuotationSchema } from 'src/schema/quotation.schema';
import { Estimate, EstimateSchema } from 'src/schema/estimate.schema';
@Module({
  imports: [
    MongooseModule.forFeature([
      { name: Admin.name, schema: AdminSchema },
      { name: User.name, schema: UserSchema },
      { name: Shipment.name, schema: ShipmentSchema },
      { name: Shipment_Mode.name, schema: Shipment_Mode_Schema },
      {
        name: Map_Shipment_Attachment.name,
        schema: Map_Shipment_Attachment_Schema,
      },
      { name: Map_Shipment_Status.name, schema: MapShipmentStatusSchema },
      { name: Inquiry.name, schema: InquirySchema },
      { name: Map_Company_Employee.name, schema: Map_Company_Employee_Schema },
      { name: Otp.name, schema: OtpSchema },
      { name: Notification.name, schema: NotificationSchema },
      { name: Map_Inquiry_Reply.name, schema: Map_Inquiry_Reply_Schema },
      {
        name: Map_Inquiry_Attachment.name,
        schema: Map_Inquiry_Attachment_Schema,
      },
      { name: Map_User_Device.name, schema: Map_User_Device_Schema },
      { name: Quotation.name, schema: QuotationSchema },
      { name: Estimate.name, schema: EstimateSchema },
      {
        name: Map_Shipment_Commodity.name,
        schema: Map_Shipment_Commodity_Schema,
      },
    ]),
  ],
  providers: [AdminService, JwtService, SendFirebaseNotifications,SendMsg91PasswordService],
  controllers: [AdminController],
})
export class AdminModule {}
