mnemo_cards/mnemo_cards_backend/lib/packs/card_model_extension.dart
2025-11-16 14:25:27 +03:00

33 lines
995 B
Dart

import 'package:mnemo_cards_common_backend/mnemo_cards_common_backend.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
extension converterExtenxion on GameCardModel {
GameCardDto toDto() {
return GameCardDto(
id: id ?? -1,
image: image,
mnemo: mnemo,
original: original,
translation: translation,
transcription: transcription,
transcriptionMnemo: transcriptionMnemo,
imageBack: imageBack,
back: back,
);
}
}
extension listConverterExtenxion on Iterable<GameCardModel> {
List<GameCardDto> toDtosList(List<int> cardsOrder) =>
map((e) => e.toDto()).toList()
..sort((p, n) {
final pIndex = cardsOrder.indexOf(p.id);
final nIndex = cardsOrder.indexOf(n.id);
if (pIndex == -1) {
return nIndex == -1 ? p.id.compareTo(n.id) : 1;
} else if (nIndex == -1) {
return -1;
}
return pIndex.compareTo(nIndex);
});
}