Files
EME_APP/eme-frontend/lib/models/emprunt_item.dart
T
2026-07-07 14:10:12 +02:00

53 lines
1.5 KiB
Dart

import "materiel_item.dart";
/// Un emprunt en cours de l'étudiant, affiché dans le parcours de restitution
/// et renvoyé par l'API.
class EmpruntItem {
const EmpruntItem({
required this.id,
required this.materiel,
required this.dateEmprunt,
required this.retourPrevu,
required this.statut,
});
factory EmpruntItem.fromJson(Map<String, dynamic> json) {
final dateEmprunt = DateTime.parse(json["dateEmprunt"] as String);
final retourPrevu = DateTime.parse(json["dateRetourPrevue"] as String);
return EmpruntItem(
id: json["id"] as int,
materiel: MaterielItem.fromJson(json["materiel"] as Map<String, dynamic>),
dateEmprunt: _dateHeure(dateEmprunt),
retourPrevu: _date(retourPrevu),
statut: json["statut"] as String,
);
}
final int id;
final MaterielItem materiel;
final String dateEmprunt;
final String retourPrevu;
final String statut;
EmpruntItem copyWith({MaterielItem? materiel, String? statut}) {
return EmpruntItem(
id: id,
materiel: materiel ?? this.materiel,
dateEmprunt: dateEmprunt,
retourPrevu: retourPrevu,
statut: statut ?? this.statut,
);
}
static String _deux(int valeur) => valeur.toString().padLeft(2, "0");
static String _date(DateTime date) {
return "${_deux(date.day)}/${_deux(date.month)}";
}
static String _dateHeure(DateTime date) {
return "${_date(date)} à ${_deux(date.hour)}:${_deux(date.minute)}";
}
}