import 'package:dartz/dartz.dart'; import '../../../services/user_service.dart'; import '../../../models/user_model.dart' as model; import '../../../core/errors/failures.dart'; import '../base_usecase.dart'; /// 사용자 상세 조회 파라미터 class GetUserDetailParams { final int id; const GetUserDetailParams({ required this.id, }); } /// 사용자 상세 조회 UseCase class GetUserDetailUseCase extends UseCase { final UserService _userService; GetUserDetailUseCase(this._userService); @override Future> call(GetUserDetailParams params) async { try { final user = await _userService.getUser(params.id); return Right(user); } catch (e) { if (e.toString().contains('찾을 수 없')) { return Left(ValidationFailure( message: '사용자를 찾을 수 없습니다.', code: 'USER_NOT_FOUND', originalError: e, )); } else if (e.toString().contains('권한')) { return Left(PermissionFailure( message: '사용자 정보를 조회할 권한이 없습니다.', code: 'PERMISSION_DENIED', originalError: e, )); } else { return Left(ServerFailure( message: '사용자 정보를 불러오는 중 오류가 발생했습니다.', originalError: e, )); } } } }