// ──────────────────────────────────────────────────────────────────────── // date_utils.dart – helper shared by all models // ──────────────────────────────────────────────────────────────────────── DateTime? parseDate(dynamic raw) { if (raw == null) return null; if (raw is String) return DateTime.parse(raw); if (raw is int) return DateTime.fromMillisecondsSinceEpoch(raw); if (raw is List && raw.length >= 6) { // Spring's LocalDateTime serialized as [yyyy,MM,dd,HH,mm,ss,nanos] return DateTime(raw[0], raw[1], raw[2], raw[3], raw[4], raw[5], raw.length > 6 ? (raw[6] ~/ 1000) : 0); // nanos → µs } throw FormatException('Unsupported date format: $raw'); } String? formatDate(DateTime? dt) => dt?.toIso8601String();