From cfec9e8a7ddc43451fe7b225726de6195c582d08 Mon Sep 17 00:00:00 2001 From: dahoud Date: Sun, 15 Mar 2026 02:51:53 +0000 Subject: [PATCH] =?UTF-8?q?feat(mobile):=20ajout=20champs=20KYC=20au=20mod?= =?UTF-8?q?=C3=A8le=20membre=20(T022)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../data/models/membre_complete_model.dart | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/unionflow/unionflow-mobile-apps/lib/features/members/data/models/membre_complete_model.dart b/unionflow/unionflow-mobile-apps/lib/features/members/data/models/membre_complete_model.dart index 797603b..c1a7504 100644 --- a/unionflow/unionflow-mobile-apps/lib/features/members/data/models/membre_complete_model.dart +++ b/unionflow/unionflow-mobile-apps/lib/features/members/data/models/membre_complete_model.dart @@ -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