class DiscountEntity { final String id; final String name; final String shopName; final List images; final String type; final String description; final double price; final double nPrice; final DateTime? endDate; DiscountEntity({ required this.id, required this.name, required this.shopName, required this.images, required this.type, required this.description, required this.price, required this.nPrice, required this.endDate, }); factory DiscountEntity.fromJson(Map json) { // A helper function to safely extract lists List _parseImages(dynamic imageList) { if (imageList is List) { return imageList.map((img) => (img['Url'] ?? '') as String).toList(); } return []; } return DiscountEntity( id: json['_id'] ?? '', name: json['Name'] ?? 'بدون نام', // Safely access nested properties shopName: (json['Shop'] != null ? json['Shop']['Name'] : 'فروشگاه') ?? 'فروشگاه', images: _parseImages(json['Images']), type: (json['Type'] != null ? json['Type']['Description'] : 'عمومی') ?? 'عمومی', description: json['Description'] ?? '', price: (json['Price'] as num? ?? 0).toDouble(), nPrice: (json['NPrice'] as num? ?? 0).toDouble(), // Handle potential null or invalid date endDate: json['EndDate'] != null ? DateTime.tryParse(json['EndDate']) : null, ); } }