import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserModule } from '../user/user.module';
import { DriveFolder } from './entities/drive-folder.entity';
import { DriveFile } from './entities/drive-file.entity';
import { ProjectFolderLink } from './entities/project-folder-link.entity';
import { ProjectMember } from '../project/entities/project-member.entity';
import { DriveService } from './drive.service';
import { DriveController } from './drive.controller';

// 드라이브 모듈 — 프로젝트와 독립된 파일 저장소.
// 저장소(StorageService)는 전역 StorageModule 에서 주입된다.
// ProjectMember 는 폴더-프로젝트 연동 시 멤버십(권한) 판정을 위해 forFeature 로 등록한다.
@Module({
  imports: [
    TypeOrmModule.forFeature([
      DriveFolder,
      DriveFile,
      ProjectFolderLink,
      ProjectMember,
    ]),
    UserModule,
  ],
  controllers: [DriveController],
  providers: [DriveService],
  exports: [DriveService],
})
export class DriveModule {}
