/// Use Case: Mettre à jour la configuration d'une organisation
library update_organization_config;

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

/// Met à jour la configuration spécifique d'une organisation
/// (logo, couleurs, modules activés, préférences, etc.)
@injectable
class UpdateOrganizationConfig {
  final IOrganizationRepository _repository;

  UpdateOrganizationConfig(this._repository);

  /// Exécute le use case
  /// [id] : Identifiant de l'organisation
  /// [config] : Configuration à mettre à jour
  /// Exemple: { "logo": "url", "couleurPrimaire": "#FF5733", "modulesActifs": ["finance", "events"] }
  /// Retourne l'organisation avec la configuration mise à jour
  /// Endpoint: PUT /api/organisations/{id}/configuration
  Future<OrganizationModel> call(String id, Map<String, dynamic> config) async {
    return _repository.updateOrganizationConfig(id, config);
  }
}
