import 'package:autos/domain/entities/brands.dart'; class Brand { final String id; final String name; final String logo; final bool dropship; final List pricegroups; Brand({ required this.id, required this.name, required this.logo, required this.dropship, required this.pricegroups, }); factory Brand.fromJson(Map json) { return Brand( id: json['id'].toString(), name: json['name'] ?? '', logo: json['logo'] ?? '', dropship: json['dropship'] ?? false, pricegroups: (json['pricegroups'] as List?) ?.map((e) => PriceGroup.fromJson(e)) .toList() ?? [], ); } /// 🔥 Model → Entity BrandEntity toEntity() { return BrandEntity( id: id, name: name, logo: logo, dropship: dropship, pricegroups: pricegroups.map((e) => e.toEntity()).toList(), ); } } class PriceGroup { final String pricegroupId; final String pricegroupName; final String pricegroupPrefix; final List locationRules; final List purchaseRestrictions; PriceGroup({ required this.pricegroupId, required this.pricegroupName, required this.pricegroupPrefix, required this.locationRules, required this.purchaseRestrictions, }); factory PriceGroup.fromJson(Map json) { return PriceGroup( pricegroupId: json['pricegroup_id'].toString(), pricegroupName: json['pricegroup_name'] ?? '', pricegroupPrefix: json['pricegroup_prefix'] ?? '', locationRules: json['location_rules'] ?? [], purchaseRestrictions: (json['purchase_restrictions'] as List?) ?.map((e) => PurchaseRestriction.fromJson(e)) .toList() ?? [], ); } /// 🔥 Model → Entity PriceGroupEntity toEntity() { return PriceGroupEntity( pricegroupId: pricegroupId, pricegroupName: pricegroupName, pricegroupPrefix: pricegroupPrefix, locationRules: locationRules, purchaseRestrictions: purchaseRestrictions.map((e) => e.toEntity()).toList(), ); } } class PurchaseRestriction { final String program; final String yourStatus; PurchaseRestriction({ required this.program, required this.yourStatus, }); factory PurchaseRestriction.fromJson(Map json) { return PurchaseRestriction( program: json['program'] ?? '', yourStatus: json['your_status'] ?? '', ); } /// 🔥 Model → Entity PurchaseRestrictionEntity toEntity() { return PurchaseRestrictionEntity( program: program, yourStatus: yourStatus, ); } }