import { Module, Global } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserEntity } from '../../entities/user.entity';
import { RolePermissionEntity } from '../../entities/role-permission.entity';
import { RedisModule } from '../../redis/redis.module';
import { PermissionCheckService } from './permission-check.service';

/**
 * Global module so any service (QuoteService, BookingService, etc.)
 * can inject PermissionCheckService for field-level gating without
 * importing a full chain every time.
 */
@Global()
@Module({
  imports: [TypeOrmModule.forFeature([UserEntity, RolePermissionEntity]), RedisModule],
  providers: [PermissionCheckService],
  exports: [PermissionCheckService],
})
export class PermissionsModule {}
