From f18dd0d7ace82be4140bcf1c1271a6a8fa79004f Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 18 Dec 2025 22:17:53 +0300 Subject: [PATCH] extentions --- .../v2/extensions/game_card_extensions.dart | 39 +++++++++++++++++++ .../api/v2/extensions/voice_extensions.dart | 16 ++++++++ 2 files changed, 55 insertions(+) create mode 100644 mnemo_cards_backend/lib/api/v2/extensions/game_card_extensions.dart create mode 100644 mnemo_cards_backend/lib/api/v2/extensions/voice_extensions.dart 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(), + ); + } +}