Auth: - profile_repository.dart: /api/auth/change-password → /api/membres/auth/change-password Multi-org (Phase 3): - OrgSelectorPage, OrgSwitcherBloc, OrgSwitcherEntry - org_context_service.dart: headers X-Active-Organisation-Id + X-Active-Role Navigation: - MorePage: navigation conditionnelle par typeOrganisation - Suppression adaptive_navigation (remplacé par main_navigation_layout) Auth AppAuth: - keycloak_webview_auth_service: fixes AppAuth Android - AuthBloc: gestion REAUTH_REQUIS + premierLoginComplet Onboarding: - Nouveaux états: payment_method_page, onboarding_shared_widgets - SouscriptionStatusModel mis à jour StatutValidationSouscription Android: - build.gradle: ProGuard/R8, network_security_config - Gradle wrapper mis à jour
64 lines
2.2 KiB
Dart
64 lines
2.2 KiB
Dart
/// Statut courant d'une souscription retourné par le backend
|
|
class SouscriptionStatusModel {
|
|
final String souscriptionId;
|
|
final String statutValidation;
|
|
final String typeFormule;
|
|
final String plageMembres;
|
|
final String plageLibelle;
|
|
final String typePeriode;
|
|
final String typeOrganisation;
|
|
final double? montantTotal;
|
|
final double? montantMensuelBase;
|
|
final double? coefficientApplique;
|
|
final String? waveSessionId;
|
|
final String? waveLaunchUrl;
|
|
final String organisationId;
|
|
final String? organisationNom;
|
|
final DateTime? dateDebut;
|
|
final DateTime? dateFin;
|
|
|
|
const SouscriptionStatusModel({
|
|
required this.souscriptionId,
|
|
required this.statutValidation,
|
|
required this.typeFormule,
|
|
required this.plageMembres,
|
|
required this.plageLibelle,
|
|
required this.typePeriode,
|
|
required this.typeOrganisation,
|
|
this.montantTotal,
|
|
this.montantMensuelBase,
|
|
this.coefficientApplique,
|
|
this.waveSessionId,
|
|
this.waveLaunchUrl,
|
|
required this.organisationId,
|
|
this.organisationNom,
|
|
this.dateDebut,
|
|
this.dateFin,
|
|
});
|
|
|
|
factory SouscriptionStatusModel.fromJson(Map<dynamic, dynamic> json) {
|
|
return SouscriptionStatusModel(
|
|
souscriptionId: json['souscriptionId'] as String,
|
|
statutValidation: json['statutValidation'] as String,
|
|
typeFormule: json['typeFormule'] as String,
|
|
plageMembres: json['plageMembres'] as String,
|
|
plageLibelle: (json['plageLibelle'] as String?) ?? '',
|
|
typePeriode: json['typePeriode'] as String,
|
|
typeOrganisation: (json['typeOrganisation'] as String?) ?? 'ASSOCIATION',
|
|
montantTotal: (json['montantTotal'] as num?)?.toDouble(),
|
|
montantMensuelBase: (json['montantMensuelBase'] as num?)?.toDouble(),
|
|
coefficientApplique: (json['coefficientApplique'] as num?)?.toDouble(),
|
|
waveSessionId: json['waveSessionId'] as String?,
|
|
waveLaunchUrl: json['waveLaunchUrl'] as String?,
|
|
organisationId: json['organisationId'] as String,
|
|
organisationNom: json['organisationNom'] as String?,
|
|
dateDebut: json['dateDebut'] != null
|
|
? DateTime.tryParse(json['dateDebut'] as String)
|
|
: null,
|
|
dateFin: json['dateFin'] != null
|
|
? DateTime.tryParse(json['dateFin'] as String)
|
|
: null,
|
|
);
|
|
}
|
|
}
|