Couche domaine - ApplETS/Notre-Dame GitHub Wiki
🎯 Couche Domain (Métier)
Vue d'Ensemble
La couche Domain contient la logique métier pure et est complètement indépendante de tout framework (Flutter, Dio, Firebase, etc.).
domain/
├── models/ # Entités métier
├── constants/ # Constantes métier
└── broadcast_icon_type.dart
📋 Responsabilités
✅ Définir les entités métier (domaines)
✅ Contenir les règles métier et validations
✅ Zéro dépendance à Flutter, Firebase, packages externes
✅ Être testable indépendamment
🏛️ Modèles du Domain
Types de Modèles
- Entities (Entités): Représentent les concepts clés du domaine.
- Value Objects: Représentent des valeurs simples avec logique.
- Aggregates: Groupes d'entités liées.
📚 Modèles Clés du Projet
- Session: représente une session de cours avec les dates importantes reliées
- Course / Cours: représente un groupe-cours, contient donc un titre, un groupe, une note, etc.
- CourseActivity / Activité de Cours: représente une activité de cours dans l'horaire, donc une séance de travail (TP, laboratoire, cours)
📐 Principes de Conception
- Immutabilité: Les entités doivent être immuables quand possible, donc ne pas pouvoir modifier les valeurs après la création. Le projet utilise Freezed pour les modèles immuables
- Validation dans le Constructeur: La validation métier se fait lors de la création
- Méthodes Métier: Inclure la logique métier dans les entités:
- Pas de Dépendances Externes
✅ Checklist pour Nouvelle Entité
- Immuable (utiliser
finalou@freezed) - Validation métier dans le constructeur
- Constructeurs nommés si besoin (ex:
.empty()) - Méthodes métier (ex:
isActive()) -
@override toString()pour debug - Tests unitaires
- Documentation commentaire
- Zéro dépendance externe
Cette page a été en partie générée avec l'aide de Claude Haiku 4.5