import fs from 'fs-extra'; import path from 'path'; import { logSuccess, logInfo } from './logger'; /** Creates the required Clean Architecture directory structure (idempotent). */ export function createDirectoryStructure(baseDir: string): void { const dirs = [ path.join(baseDir, 'data/dtos'), path.join(baseDir, 'data/repositories'), path.join(baseDir, 'data/mappers'), path.join(baseDir, 'domain/repositories'), path.join(baseDir, 'domain/use-cases'), path.join(baseDir, 'di/repositories'), path.join(baseDir, 'di/use-cases'), path.join(baseDir, 'entities/models') ]; dirs.forEach((dir) => { fs.ensureDirSync(dir); }); logSuccess('Directory structure created'); } /** Removes a temporary directory and all its contents. */ export function cleanup(tempDir: string): void { if (fs.existsSync(tempDir)) { fs.removeSync(tempDir); logInfo('Temporary files removed'); } }