import 'package:pmd_lab/data/dtos/titans_dto.dart'; import 'package:pmd_lab/domain/models/card.dart'; import 'package:pmd_lab/domain/models/home.dart'; const _imagePlaceholder = 'https://cdn-icons-png.flaticon.com/512/4054/4054617.png'; extension TitansDtoToModel on TitansDto { HomeData toDomain() => HomeData( data: results?.map((e) => e.toDomain()).toList(), ); } extension TitanResultsDtoToModel on TitansResultsDto { CardData toDomain() => CardData( name ?? 'UNKNOWN', img: img ?? _imagePlaceholder, description: _makeDescription(height, abilities, allegiance), id: id.toString(), ); String _makeDescription(String? height, List? abilities, String? allegiance) { List descriptionParts = []; if (height != null && height.isNotEmpty) { descriptionParts.add('Height: $height'); } if (allegiance != null && allegiance.isNotEmpty) { descriptionParts.add('Allegiance: $allegiance'); } if (abilities != null && abilities.isNotEmpty) { final abilitiesStr = abilities.join(', '); descriptionParts.add('Abilities: $abilitiesStr.'); } return descriptionParts.join('\n'); } }