import 'package:dartz/dartz.dart'; import 'package:injectable/injectable.dart'; import '../../../data/repositories/license_repository.dart'; import '../../../core/errors/failures.dart'; import '../base_usecase.dart'; /// 라이선스 삭제 UseCase @injectable class DeleteLicenseUseCase implements UseCase { final LicenseRepository repository; DeleteLicenseUseCase(this.repository); @override Future> call(int id) async { try { // 비즈니스 로직: 활성 라이선스는 삭제 불가 final license = await repository.getLicenseDetail(id); if (license.isActive) { return Left(ValidationFailure(message: '활성 라이선스는 삭제할 수 없습니다')); } await repository.deleteLicense(id); return const Right(true); } catch (e) { return Left(ServerFailure(message: e.toString())); } } }