diff --git a/mnemo_cards_backend/lib/api/v2/extensions/game_card_extensions.dart b/mnemo_cards_backend/lib/api/v2/extensions/game_card_extensions.dart new file mode 100644 index 0000000..ccc7b04 --- /dev/null +++ b/mnemo_cards_backend/lib/api/v2/extensions/game_card_extensions.dart @@ -0,0 +1,39 @@ +import 'package:mnemo_cards_backend/database/database.dart'; +import 'package:mnemo_cards_common/mnemo_cards_common.dart'; + +/// Extension для конвертации GameCard в GameCardDto для admin API +extension GameCardAdminExtension on GameCard { + /// Конвертация GameCard в GameCardDto с учетом packId и конвертации изображений + GameCardDto toGameCardDtoWithPack( + String? packId, + String? Function(String?, String?, String) convertImageToUrl, + String? Function(String?, String?, String) convertImageBackToUrl, + ) { + return GameCardDto( + id: id, + original: original, + translation: translation, + mnemo: mnemo ?? '', + image: convertImageToUrl(image, packId, id), + imageBack: convertImageBackToUrl(imageBack, packId, id), + back: back, + transcription: transcription ?? '', + transcriptionMnemo: transcriptionMnemo, + ); + } + + /// Простая конвертация GameCard в GameCardDto без конвертации изображений + GameCardDto toGameCardDto() { + return GameCardDto( + id: id, + original: original, + translation: translation, + mnemo: mnemo ?? '', + image: image, + imageBack: imageBack, + back: back, + transcription: transcription ?? '', + transcriptionMnemo: transcriptionMnemo, + ); + } +} diff --git a/mnemo_cards_backend/lib/api/v2/extensions/voice_extensions.dart b/mnemo_cards_backend/lib/api/v2/extensions/voice_extensions.dart new file mode 100644 index 0000000..171483b --- /dev/null +++ b/mnemo_cards_backend/lib/api/v2/extensions/voice_extensions.dart @@ -0,0 +1,16 @@ +import 'package:mnemo_cards_backend/database/database.dart'; +import 'package:mnemo_cards_common/mnemo_cards_common.dart'; + +/// Extension для конвертации VoiceModel в AdminVoiceResponse +extension VoiceModelAdminExtension on VoiceModel { + /// Конвертация VoiceModel в AdminVoiceResponse + AdminVoiceResponse toAdminVoiceResponse() { + return AdminVoiceResponse( + id: id, + cardId: cardId, + voiceUrl: voiceUrl, + language: language, + createdAt: createdAt.dateTime.toIso8601String(), + ); + } +}