PMU_PIbd32_Kamcharova_K.A/lib/data/mappers/character_mapper.dart

41 lines
1.2 KiB
Dart

import 'package:identity/data/dtos/character_dto.dart';
import 'package:identity/domain/models/character.dart';
const _imagePlaceholder = 'https://example.com/placeholder.png';
extension CharacterDtoToModel on CharacterDto {
Character toDomain() {
return Character(
name: name,
type: type == 'Survivor' ? CharacterType.Survivor : CharacterType.Hunter,
backstory: backstory,
imageUrl: imageUrl.isNotEmpty ? imageUrl : _imagePlaceholder,
isLiked: isLiked,
);
}
}
class CharacterMapper {
static CharacterDto toDTO(Character character) {
return CharacterDto(
name: character.name,
type: character.type.toString().split('.').last, // Преобразуем CharacterType в строку
backstory: character.backstory,
imageUrl: character.imageUrl,
isLiked: character.isLiked,
);
}
static Character fromDTO(CharacterDto dto) {
// Преобразуем строку обратно в CharacterType
final characterType = dto.type == 'Survivor' ? CharacterType.Survivor : CharacterType.Hunter;
return Character(
name: dto.name,
type: characterType,
backstory: dto.backstory,
imageUrl: dto.imageUrl,
isLiked: dto.isLiked,
);
}
}