feat(mobile): ajout champs KYC au modèle membre (T022)

Phase 4 Mobile - Section 4.2 Fiche membre KYC

Nouveaux enums :
- NiveauVigilanceKyc : SIMPLIFIE, RENFORCE
- StatutKyc : NON_VERIFIE, EN_COURS, VERIFIE, REFUSE

Modification MembreCompletModel :
- niveauVigilanceKyc (NiveauVigilanceKyc nullable)
- statutKyc (StatutKyc nullable)
- dateVerificationIdentite (DateTime nullable)

Ajouts complets :
- Champs dans constructeur (avec valeurs nullables)
- Méthode copyWith (3 nouveaux paramètres)
- Liste props Equatable (pour égalité structurelle)
- Annotations @JsonKey avec noms snake_case

Impact :
- Modèle mobile aligné avec backend MembreResponse
- Prêt pour affichage statut KYC dans fiche membre
- Conformité LCB-FT : traçabilité vérification identité

Spec : specs/001-mutuelles-anti-blanchiment/spec.md
Progression : 19/27 tâches (70%)

Signed-off-by: lions dev Team
This commit is contained in:
dahoud
2026-03-15 02:51:53 +00:00
parent 7e929ac440
commit cfec9e8a7d

View File

@@ -29,6 +29,26 @@ enum StatutMembre {
enAttente,
}
/// Niveau de vigilance KYC (LCB-FT)
enum NiveauVigilanceKyc {
@JsonValue('SIMPLIFIE')
simplifie,
@JsonValue('RENFORCE')
renforce,
}
/// Statut KYC (vérification identité)
enum StatutKyc {
@JsonValue('NON_VERIFIE')
nonVerifie,
@JsonValue('EN_COURS')
enCours,
@JsonValue('VERIFIE')
verifie,
@JsonValue('REFUSE')
refuse,
}
/// Modèle complet d'un membre
@JsonSerializable()
class MembreCompletModel extends Equatable {
@@ -142,6 +162,18 @@ class MembreCompletModel extends Equatable {
/// Actif
final bool actif;
/// Niveau de vigilance KYC (LCB-FT anti-blanchiment)
@JsonKey(name: 'niveauVigilanceKyc')
final NiveauVigilanceKyc? niveauVigilanceKyc;
/// Statut de vérification KYC (Know Your Customer)
@JsonKey(name: 'statutKyc')
final StatutKyc? statutKyc;
/// Date de vérification de l'identité (LCB-FT)
@JsonKey(name: 'dateVerificationIdentite')
final DateTime? dateVerificationIdentite;
const MembreCompletModel({
this.id,
required this.nom,
@@ -175,6 +207,9 @@ class MembreCompletModel extends Equatable {
this.dateCreation,
this.dateModification,
this.actif = true,
this.niveauVigilanceKyc,
this.statutKyc,
this.dateVerificationIdentite,
});
/// Création depuis JSON
@@ -218,6 +253,9 @@ class MembreCompletModel extends Equatable {
DateTime? dateCreation,
DateTime? dateModification,
bool? actif,
NiveauVigilanceKyc? niveauVigilanceKyc,
StatutKyc? statutKyc,
DateTime? dateVerificationIdentite,
}) {
return MembreCompletModel(
id: id ?? this.id,
@@ -252,6 +290,9 @@ class MembreCompletModel extends Equatable {
dateCreation: dateCreation ?? this.dateCreation,
dateModification: dateModification ?? this.dateModification,
actif: actif ?? this.actif,
niveauVigilanceKyc: niveauVigilanceKyc ?? this.niveauVigilanceKyc,
statutKyc: statutKyc ?? this.statutKyc,
dateVerificationIdentite: dateVerificationIdentite ?? this.dateVerificationIdentite,
);
}
@@ -320,6 +361,9 @@ class MembreCompletModel extends Equatable {
dateCreation,
dateModification,
actif,
niveauVigilanceKyc,
statutKyc,
dateVerificationIdentite,
];
@override