26 lines
750 B
Dart
26 lines
750 B
Dart
/// Use case: Créer un nouveau membre
|
|
library create_member;
|
|
|
|
import 'package:injectable/injectable.dart';
|
|
import '../../data/models/membre_complete_model.dart';
|
|
import '../repositories/membre_repository.dart';
|
|
|
|
/// Use case pour créer un membre
|
|
/// Réservé aux utilisateurs avec le rôle HR_MANAGER
|
|
@injectable
|
|
class CreateMember {
|
|
final IMembreRepository _repository;
|
|
|
|
CreateMember(this._repository);
|
|
|
|
/// Exécute le use case
|
|
///
|
|
/// [membre] - Modèle complet du membre à créer
|
|
///
|
|
/// Retourne le membre créé avec son ID généré
|
|
/// Lève une exception en cas d'erreur de validation ou de création
|
|
Future<MembreCompletModel> call(MembreCompletModel membre) async {
|
|
return _repository.createMembre(membre);
|
|
}
|
|
}
|