/// Modèle pour les demandes d'aide (solidarité) /// Correspond à l'API /api/demandes-aide (DemandeAideDTO) library demande_aide_model; import 'package:equatable/equatable.dart'; import 'package:json_annotation/json_annotation.dart'; part 'demande_aide_model.g.dart'; @JsonSerializable(explicitToJson: true) class DemandeAideModel extends Equatable { final String? id; final String? numeroReference; final String? type; final String? titre; final String? description; final String? justification; final double? montantDemande; final double? montantAccorde; final String? statut; final String? urgence; final String? localisation; final String? motif; final String? demandeurId; final String? demandeur; final String? telephone; final String? email; final DateTime? dateDemande; final DateTime? dateLimite; final String? responsableTraitement; final String? organisationId; final DateTime? dateCreation; const DemandeAideModel({ this.id, this.numeroReference, this.type, this.titre, this.description, this.justification, this.montantDemande, this.montantAccorde, this.statut, this.urgence, this.localisation, this.motif, this.demandeurId, this.demandeur, this.telephone, this.email, this.dateDemande, this.dateLimite, this.responsableTraitement, this.organisationId, this.dateCreation, }); factory DemandeAideModel.fromJson(Map json) => _$DemandeAideModelFromJson(json); Map toJson() => _$DemandeAideModelToJson(this); String get statutLibelle { switch (statut) { case 'BROUILLON': return 'Brouillon'; case 'SOUMISE': return 'Soumise'; case 'EN_ATTENTE': return 'En attente'; case 'APPROUVEE': return 'Approuvée'; case 'REJETEE': return 'Rejetée'; case 'EN_COURS_TRAITEMENT': return 'En cours de traitement'; case 'TERMINEE': return 'Terminée'; default: return statut ?? '—'; } } String get typeLibelle => type ?? '—'; @override List get props => [ id, numeroReference, titre, statut, type, dateDemande, montantDemande, organisationId, ]; }