feat(#157): consommer le flag API sans_responsable.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
ef7512dc1e
commit
b0dddd6695
@ -14,6 +14,8 @@ class EnfantAdminModel {
|
||||
final bool consentPhoto;
|
||||
final bool isMultiple;
|
||||
final List<EnfantParentLink> parentLinks;
|
||||
/// Flag API #157 (sinon déduit de [parentLinks]).
|
||||
final bool? sansResponsable;
|
||||
|
||||
EnfantAdminModel({
|
||||
required this.id,
|
||||
@ -27,6 +29,7 @@ class EnfantAdminModel {
|
||||
this.consentPhoto = false,
|
||||
this.isMultiple = false,
|
||||
this.parentLinks = const [],
|
||||
this.sansResponsable,
|
||||
});
|
||||
|
||||
String get fullName {
|
||||
@ -37,9 +40,11 @@ class EnfantAdminModel {
|
||||
return '$fn $ln';
|
||||
}
|
||||
|
||||
/// Aucun lien parent valide (`enfants_parents` vide) — ticket #157.
|
||||
bool get hasNoResponsable =>
|
||||
!parentLinks.any((l) => l.parentId.trim().isNotEmpty);
|
||||
/// Aucun lien parent valide — ticket #157.
|
||||
bool get hasNoResponsable {
|
||||
if (sansResponsable != null) return sansResponsable!;
|
||||
return !parentLinks.any((l) => l.parentId.trim().isNotEmpty);
|
||||
}
|
||||
|
||||
EnfantAdminModel copyWith({
|
||||
String? id,
|
||||
@ -53,6 +58,7 @@ class EnfantAdminModel {
|
||||
bool? consentPhoto,
|
||||
bool? isMultiple,
|
||||
List<EnfantParentLink>? parentLinks,
|
||||
bool? sansResponsable,
|
||||
}) {
|
||||
return EnfantAdminModel(
|
||||
id: id ?? this.id,
|
||||
@ -66,6 +72,7 @@ class EnfantAdminModel {
|
||||
consentPhoto: consentPhoto ?? this.consentPhoto,
|
||||
isMultiple: isMultiple ?? this.isMultiple,
|
||||
parentLinks: parentLinks ?? this.parentLinks,
|
||||
sansResponsable: sansResponsable ?? this.sansResponsable,
|
||||
);
|
||||
}
|
||||
|
||||
@ -85,6 +92,13 @@ class EnfantAdminModel {
|
||||
_parseBool(json['consentement_photo']) ||
|
||||
_parseBool(json['consentPhoto']);
|
||||
|
||||
bool? sansResponsable;
|
||||
if (json.containsKey('sans_responsable') ||
|
||||
json.containsKey('sansResponsable')) {
|
||||
sansResponsable = _parseBool(json['sans_responsable']) ||
|
||||
_parseBool(json['sansResponsable']);
|
||||
}
|
||||
|
||||
return EnfantAdminModel(
|
||||
id: (json['id'] ?? '').toString(),
|
||||
firstName: json['first_name'] as String? ?? json['prenom'] as String?,
|
||||
@ -100,6 +114,7 @@ class EnfantAdminModel {
|
||||
isMultiple: _parseBool(json['is_multiple']) ||
|
||||
_parseBool(json['est_multiple']),
|
||||
parentLinks: links,
|
||||
sansResponsable: sansResponsable,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
import 'package:p_tits_pas/models/enfant_admin_model.dart';
|
||||
|
||||
/// Enfant sans lien parent (orphelins d’affiliation) — ticket #157.
|
||||
bool enfantHasNoResponsable(EnfantAdminModel enfant) {
|
||||
return !enfant.parentLinks.any((l) => l.parentId.trim().isNotEmpty);
|
||||
}
|
||||
bool enfantHasNoResponsable(EnfantAdminModel enfant) => enfant.hasNoResponsable;
|
||||
|
||||
/// Message vigilance liste Enfants (même usage que [amPlacesVigilanceMessage]).
|
||||
String? enfantSansResponsableVigilanceMessage(EnfantAdminModel enfant) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user