📋 UC02: Compte Infirmière
Use Case Uc02 Creation D'Un Compte Pour Une Infirmiere
NOM DU USE CASE : Creation d'un compte Caregiver (Infirmier/Infirmiere)
ACTEUR PRINCIPAL : Infirmier/Infirmiere (professionnel de sante)
Objectif Metier
Permettre a un(e) infirmier(e) de s'inscrire sur CareDeal pour pouvoir consulter
les demandes de soins de patients dans sa zone d'activite et proposer ses services.
Preconditions
- L'utilisateur a installe l'application CareDeal
- L'utilisateur possede un numero de telephone mobile valide
- L'utilisateur possede un numero INAMI valide (identifiant belge des professionnels de sante)
- L'utilisateur possede une piece d'identite (carte d'identite ou passeport)
- L'utilisateur n'a pas deja un compte avec ce numero de telephone
SCENARIO NOMINAL (Happy Path)
- L'utilisateur lance l'application
- L'utilisateur selectionne "Caregiver" (ou "Je suis soignant")
- L'ecran demande si l'utilisateur est un individu ou une organisation
- L'utilisateur selectionne "Infirmier(e)" (individuel)
- L'ecran demande le numero INAMI
- L'utilisateur saisit son numero INAMI (11 chiffres)
- Le systeme valide le format du numero
- L'ecran de creation de profil s'affiche
- L'utilisateur saisit :
- Prenom (obligatoire)
- Nom (obligatoire)
- Email (obligatoire, format valide)
- Langues acceptees (au moins une)
- L'ecran de selection de zone s'affiche
- L'utilisateur saisit ou selectionne son adresse de travail
- Le systeme geolocalise l'adresse
- Le rayon d'activite initial est de 3 km (plan gratuit)
- L'ecran demande les photos de la piece d'identite
- L'utilisateur prend en photo ou selectionne :
- Le recto de la carte d'identite (obligatoire)
- Le verso de la carte d'identite (obligatoire)
- L'ecran de verification du telephone s'affiche
- L'utilisateur saisit son numero de telephone (+32 par defaut)
- Le systeme verifie que le numero n'est pas deja utilise
- Le systeme envoie un SMS avec un code a 6 chiffres
- L'utilisateur recoit le SMS
- L'utilisateur saisit le code a 6 chiffres
- Le systeme verifie le code aupres de Firebase Auth
- Le systeme cree le compte Firebase Auth
- Le systeme cree l'entite Caregiver avec :
- uuid : identifiant unique
- name : "Nom Prenom"
- inamiNumber : numero INAMI
- number : numero de telephone
- email : adresse email
- languagesAcceptedISO : langues selectionnees
- geolocation : coordonnees GPS
- workingAddress : adresse textuelle
- rangeOfActivity : 3 (km - plan gratuit)
- imageIDRectoUrl : URL du recto
- imageIDVersoUrl : URL du verso
- status : "pendingVerification"
- credits : 0
- Le systeme cree aussi l'entite User associee
- L'ecran de fin d'inscription s'affiche
- Un message indique que le compte est en attente de verification
- L'infirmiere peut acceder a l'application mais ne peut pas encore
voir les demandes (status = pendingVerification)
SCENARIOS ALTERNATIFS / ERREURS
A1 : Numero INAMI invalide (Etape 3)
- Le numero ne fait pas 11 chiffres
- Message : "Le numero INAMI doit contenir exactement 11 chiffres"
- L'utilisateur doit corriger le numero
A2 : Email invalide (Etape 4)
- Le format de l'email n'est pas valide
- Message : "Veuillez entrer une adresse email valide"
- L'utilisateur doit corriger l'email
A3 : Aucune langue selectionnee (Etape 4)
- L'utilisateur n'a selectionne aucune langue
- Message : "Veuillez selectionner au moins une langue"
- L'utilisateur doit selectionner une langue
A4 : Adresse non trouvee (Etape 5)
- L'adresse saisie ne peut pas etre geolocalisee
- Message : "Adresse introuvable. Veuillez reessayer."
- L'utilisateur doit corriger l'adresse
A5 : Document manquant (Etape 6)
- L'utilisateur n'a pas fourni les deux faces du document
- Message : "Veuillez fournir les deux faces du document"
- L'utilisateur doit completer les photos
A6 : Numero de telephone deja utilise (Etape 7)
- Un compte existe deja avec ce numero
- Message : "Un compte existe deja avec ce numero"
- Lien vers la connexion propose
A7 : Code SMS incorrect ou expire (Etape 8)
- Voir scenarios similaires au UC01
En cas de succes :
- Un compte Firebase Auth est cree
- Une entite Caregiver est creee avec le status "pendingVerification"
- Une entite User est creee avec userRole = "caregiver"
- Les documents sont stockes dans Firebase Storage
- L'infirmiere est authentifiee mais son compte est en attente de validation
Statut du compte :
- Le compte est cree avec le statut StatusCaregiver.pendingVerification
- L'equipe care-support valide le compte pour passer a "active"
- Delai de validation : 24h a 48h (jours ouvrables)
- Tant que le statut est "pendingVerification", l'infirmiere ne peut pas :
- Voir les demandes de soins
- Contacter les patients
- Souscrire a un plan payant
Etats possibles du caregiver (StatusCaregiver) :
- pendingVerification : en attente de validation admin
- active : compte valide, peut exercer
- inactive : compte desactive temporairement
- rejected : compte refuse par l'admin
- suspended : compte suspendu
Fichiers d'ecrans :
- lib/modules/caregiver/presentation/screens/user_type_screen.dart
- lib/modules/caregiver/presentation/screens/inami_number_screen.dart
- lib/modules/caregiver/presentation/screens/caregiver_profile_creation_screen.dart
- lib/modules/caregiver/presentation/screens/area_of_activity_screen.dart
- lib/modules/caregiver/presentation/screens/upload_official_document_screen.dart
- lib/modules/caregiver/presentation/screens/phone_number_verification_screen.dart
- lib/modules/caregiver/presentation/screens/confirm_phone_number_verification_screen.dart
- lib/modules/caregiver/presentation/screens/end_form_screen.dart
Controllers :
- lib/modules/caregiver/presentation/controllers/registration_form_controller.dart
- lib/modules/caregiver/presentation/controllers/form_validation_controller.dart
- lib/modules/caregiver/presentation/controllers/document_upload_controller.dart
- lib/modules/caregiver/presentation/controllers/form_navigation_state.dart
Use Cases :
- lib/modules/caregiver/domain/usecases/create_caregiver_usecase.dart
- lib/modules/user/domain/usecases/create_user.dart
Entites :
- lib/modules/caregiver/domain/entities/caregiver_entity.dart
- lib/core/domain/entities/status_caregiver.dart
- lib/core/domain/entities/user_type.dart
Etapes d'inscription (RegistrationStep) :
- userType
- inamiNumber
- profileCreation
- areaOfActivity
- documents
- phoneVerification
- confirmPhoneVerification
- welcome