PdaElements.fromMap constructor
PdaElements.fromMap(
- Map<String, dynamic> map
)
Implementation
factory PdaElements.fromMap(Map<String, dynamic> map) {
// Handle both productList (from Kotlin) and product_list (from API)
final productListData =
(map['product_list'] ?? map['productList']) as List<dynamic>? ?? [];
final productList = productListData
.map((item) => NativeAd.fromMap(Map<String, dynamic>.from(item as Map)))
.toList();
List<CarouselCard>? carouselCards;
if (map['carouselCards'] != null) {
final carouselCardsData = map['carouselCards'] as List<dynamic>;
carouselCards = carouselCardsData
.map((item) =>
CarouselCard.fromMap(Map<String, dynamic>.from(item as Map)))
.toList();
}
PdaMediaElement? media;
if (map['media'] != null) {
media = PdaMediaElement.fromMap(
Map<String, dynamic>.from(map['media'] as Map));
}
List<ThirdPartyTracker>? thirdPartyImpressionTrackers;
if (map['thirdPartyImpressionTrackers'] != null) {
final trackersData = map['thirdPartyImpressionTrackers'] as List<dynamic>;
thirdPartyImpressionTrackers = trackersData
.map((item) =>
ThirdPartyTracker.fromMap(Map<String, dynamic>.from(item as Map)))
.toList();
}
List<ThirdPartyTracker>? thirdPartyClickTrackers;
if (map['thirdPartyClickTrackers'] != null) {
final clickTrackersData = map['thirdPartyClickTrackers'] as List<dynamic>;
thirdPartyClickTrackers = clickTrackersData
.map((item) =>
ThirdPartyTracker.fromMap(Map<String, dynamic>.from(item as Map)))
.toList();
}
return PdaElements(
productList: productList,
media: media,
width: map['width']?.toString(),
height: map['height']?.toString(),
destinationUrl: map['destinationUrl']?.toString(),
carouselCards: carouselCards,
thirdPartyImpressionTrackers: thirdPartyImpressionTrackers,
thirdPartyClickTrackers: thirdPartyClickTrackers,
);
}