import { Module, forwardRef } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { IntegrationsModule } from '../../integrations/integrations.module'; import { AnalyticsModule } from '../analytics/analytics.module'; import { AuthService } from './auth.service'; import { PartnerAuthController, ShopAuthController, UserAuthController, UserProfileController, } from './auth.controller'; import { UserAddressController } from './user-address.controller'; import { UserAddressService } from './user-address.service'; import { PartnerStaffController } from './partner-staff.controller'; import { PartnerStaffService } from './partner-staff.service'; import { StoreStaffController } from './store-staff.controller'; import { StoreStaffService } from './store-staff.service'; import { AdminAuthController } from './admin-auth.controller'; import { JwtAuthGuard } from '../../common/guards/jwt-auth.guard'; import { PhoneVerifiedGuard } from '../../common/guards/phone-verified.guard'; import { OptionalJwtAuthGuard } from '../../common/guards/optional-jwt-auth.guard'; import { HqAuthGuard } from '../../common/guards/hq-auth.guard'; import { PartnerPrimaryGuard } from '../../common/guards/partner-primary.guard'; import { PartnerPermissionGuard } from '../../common/guards/partner-permission.guard'; import { ShopStoreGuard } from '../../common/guards/shop-store.guard'; import { ShopPrimaryGuard } from '../../common/guards/shop-primary.guard'; import { StoreMembershipService } from '../../common/guards/store-membership.service'; import { HqPermissionGuard, HqPermissionsResolver, } from '../../common/guards/hq-permission.guard'; import { CommonModule } from '../common/common.module'; @Module({ imports: [ IntegrationsModule, forwardRef(() => CommonModule), forwardRef(() => AnalyticsModule), JwtModule.register({ secret: process.env.JWT_SECRET || 'dukang-prev1-dev-secret', signOptions: { expiresIn: process.env.JWT_EXPIRES_IN || '7d' }, }), ], controllers: [ UserAuthController, ShopAuthController, PartnerAuthController, PartnerStaffController, StoreStaffController, UserProfileController, UserAddressController, AdminAuthController, ], providers: [ AuthService, UserAddressService, PartnerStaffService, StoreStaffService, StoreMembershipService, JwtAuthGuard, PhoneVerifiedGuard, OptionalJwtAuthGuard, HqAuthGuard, PartnerPrimaryGuard, PartnerPermissionGuard, ShopStoreGuard, ShopPrimaryGuard, HqPermissionsResolver, HqPermissionGuard, ], exports: [ AuthService, UserAddressService, PartnerStaffService, StoreStaffService, StoreMembershipService, JwtModule, JwtAuthGuard, PhoneVerifiedGuard, OptionalJwtAuthGuard, HqAuthGuard, PartnerPrimaryGuard, PartnerPermissionGuard, ShopStoreGuard, ShopPrimaryGuard, HqPermissionsResolver, HqPermissionGuard, ], }) export class IamModule {}