import 'package:pmd_lab/data/dtos/titans_dto.dart'; import 'package:pmd_lab/domain/models/card.dart'; const _imagePlaceholder = 'https://cdn-icons-png.flaticon.com/512/4054/4054617.png'; extension CharacterDataDtoToModel on TitansResultsDto { CardData toDomain() => CardData( name ?? 'UNKNOWN', img: image ?? _imagePlaceholder, description: _makeDescription(height, abilities, allegiance), id: id, ); 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\n'); } }