/// Use Case: Mettre à jour une organisation
library update_organization;

import 'package:injectable/injectable.dart';
import '../../data/models/organization_model.dart';
import '../repositories/organization_repository.dart';

/// Met à jour une organisation existante (OrgAdmin ou SuperAdmin)
@injectable
class UpdateOrganization {
  final IOrganizationRepository _repository;

  UpdateOrganization(this._repository);

  /// Exécute le use case
  /// [id] : Identifiant de l'organisation
  /// [organization] : Modèle avec les données mises à jour
  /// Retourne l'organisation mise à jour
  /// Lève une exception si organisation non trouvée ou données invalides
  Future<OrganizationModel> call(String id, OrganizationModel organization) async {
    return _repository.updateOrganization(id, organization);
  }
}
