bool parseBool(dynamic value) { if (value == null) return false; if (value is bool) return value; if (value is num) return value != 0; if (value is String) { final v = value.trim().toLowerCase(); return v == 'true' || v == '1' || v == 'yes' || v == 'y'; } return false; } int parseInt(dynamic value) { if (value == null) return 0; if (value is int) return value; if (value is double) return value.toInt(); if (value is num) return value.toInt(); if (value is String) return int.tryParse(value) ?? 0; return 0; } String parseString(dynamic value) { if (value == null) return ''; return value.toString(); } List? parseStringList(dynamic value) { if (value == null) return null; if (value is List) { return value.map((item) => parseString(item)).toList(); } return null; } List? parseIntList(dynamic value) { if (value == null) return null; if (value is List) { return value.map((item) => parseInt(item)).toList(); } return null; } Map? parseMap(dynamic value) { if (value is Map) return value; if (value is Map) return Map.from(value); return null; } List parseModelList( dynamic value, T Function(Map json) fromJson, ) { if (value is! List) return []; return value .whereType() .map((item) => fromJson(Map.from(item))) .toList(); }