import 'package:dartz/dartz.dart'; import '../../../services/company_service.dart'; import '../../../core/errors/failures.dart'; import '../base_usecase.dart'; /// 회사 삭제 파라미터 class DeleteCompanyParams { final int id; const DeleteCompanyParams({ required this.id, }); } /// 회사 삭제 UseCase class DeleteCompanyUseCase extends UseCase { final CompanyService _companyService; DeleteCompanyUseCase(this._companyService); @override Future> call(DeleteCompanyParams params) async { try { await _companyService.deleteCompany(params.id); return const Right(null); } on ServerFailure catch (e) { if (e.message.contains('associated')) { return Left(ValidationFailure( message: '연관된 데이터가 있어 삭제할 수 없습니다.', originalError: e, )); } return Left(ServerFailure( message: e.message, originalError: e, )); } catch (e) { return Left(UnknownFailure( message: '회사 삭제 중 오류가 발생했습니다.', originalError: e, )); } } }