📋 UC01: Patient Account
Use Case Uc01 Patient Account Aanmaken
USE CASE NAAM: Patient Account Aanmaken
PRIMAIRE ACTOR: Persoon die thuisverpleging zoekt
Bedrijfsdoel
Een persoon in staat stellen om een account aan te maken op de CareDeal
applicatie om zorgaanvragen in te dienen en te beheren.
Voorwaarden
- De gebruiker heeft de CareDeal applicatie geinstalleerd
- De gebruiker heeft een geldig mobiel telefoonnummer
- De gebruiker heeft nog geen account met dit telefoonnummer
NOMINAAL SCENARIO (Happy Path)
1
Rolselectie
- De gebruiker start de applicatie
- De gebruiker selecteert "Patient" (of "Ik zoek zorg")
2
Telefoonnummer invoeren
- Het scherm vraagt om het telefoonnummer
- De gebruiker selecteert hun land (Belgie +32 standaard)
- De gebruiker voert hun telefoonnummer in (zonder voorloopnul)
- Voorbeeld: 0478 12 34 56 → ingevoerd als 478123456
- Het systeem controleert of het nummer niet al in gebruik is
3
SMS-code verzenden
- Het systeem verzendt een SMS met een 6-cijferige verificatiecode
- Het systeem gebruikt Firebase Auth voor verificatie
4
SMS-code bevestigen
- De gebruiker ontvangt de SMS
- De gebruiker voert de 6-cijferige code in
- Het systeem verifieert de code met Firebase Auth
5
Validatie en account aanmaken
- Het systeem maakt het Firebase Auth account aan
- Het systeem maakt de User entiteit aan met:
- phoneNumber: het geverifieerde nummer
- userRole: "patient"
- createdAt: huidige datum
- De gebruiker wordt doorgestuurd naar de startpagina
ALTERNATIEVE SCENARIO'S / FOUTEN
A1: Telefoonnummer al in gebruik (Stap 2)
- Het systeem detecteert dat er al een account bestaat met dit nummer
- Bericht: "Er bestaat al een account met dit nummer"
- Een link naar het inlogscherm wordt aangeboden
A2: SMS niet ontvangen (Stap 3)
- De gebruiker wacht maar ontvangt geen SMS
- De gebruiker kan op "Code opnieuw verzenden" drukken
- Een timer van 60 seconden beperkt het opnieuw verzenden
- Na 3 pogingen, tijdelijke blokkade met wachtbericht
A3: Onjuiste code (Stap 4)
- De ingevoerde code komt niet overeen
- Bericht: "Onjuiste code. Probeer het opnieuw."
- De gebruiker kan de invoer opnieuw proberen
- Na 5 onjuiste pogingen wordt de code ongeldig
A4: Verlopen code (Stap 4)
- De code is verlopen (geldigheid: 5 minuten)
- Bericht: "Verlopen code"
- De gebruiker moet een nieuwe code aanvragen
A5: Netwerkverbinding verloren
- Bij elke stap kan de verbinding verloren gaan
- Bericht: "Controleer uw internetverbinding"
- De gebruiker kan opnieuw proberen zodra de verbinding is hersteld
Bij succes:
- Een Firebase Auth account wordt aangemaakt
- Een User entiteit wordt aangemaakt met userRole = "patient"
- De gebruiker is automatisch ingelogd
- De gebruiker wordt doorgestuurd naar het hoofdscherm
- De gebruiker kan nu zorgaanvragen maken
Schermbestanden:
- lib/modules/auth/presentation/screens/phone_input_screen.dart
- lib/modules/auth/presentation/screens/otp_verification_screen.dart
Controllers:
- lib/modules/auth/presentation/controllers/phone_auth_controller.dart
Use Cases:
- lib/modules/user/domain/usecases/create_user.dart
Entiteiten:
- lib/modules/user/domain/entities/user_entity.dart
Externe diensten:
- Firebase Authentication (Phone Auth)