/// Formaterar ett DateTime-objekt som YYYY-MM-DD. /// Om [dt] är null returneras [fallback] (default: tom sträng). String formatDate(DateTime? dt, {String fallback = ''}) { if (dt == null) return fallback; return '${dt.year}-' '${dt.month.toString().padLeft(2, '0')}-' '${dt.day.toString().padLeft(2, '0')}'; } /// Parsar en ISO-datumsträng och formaterar som YYYY-MM-DD. /// Om strängen inte är parsbar returneras den oförändrad. String formatDateString(String iso) { try { return formatDate(DateTime.parse(iso), fallback: iso); } catch (_) { return iso; } } /// Formaterar ett tal som heltal om det inte har decimaler, annars med decimaler. /// Exempel: 2.0 → "2", 1.5 → "1.5" String formatQuantity(double v) => v == v.roundToDouble() ? v.toStringAsFixed(0) : v.toStringAsFixed(1);