/// Use Case: Créer une nouvelle organisation
library create_organization;

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

/// Crée une nouvelle organisation (SuperAdmin uniquement)
@injectable
class CreateOrganization {
  final IOrganizationRepository _repository;

  CreateOrganization(this._repository);

  /// Exécute le use case
  /// [organization] : Modèle de l'organisation à créer
  /// Retourne l'organisation créée avec son ID
  /// Lève une exception en cas d'erreur (données invalides, conflit)
  Future<OrganizationModel> call(OrganizationModel organization) async {
    return _repository.createOrganization(organization);
  }
}
