feature(training): отбражение данных для тренировки
This commit is contained in:
10
lib/services/training/training_interface.dart
Normal file
10
lib/services/training/training_interface.dart
Normal file
@@ -0,0 +1,10 @@
|
||||
import 'package:remever/database/database.dart';
|
||||
import 'package:remever/models/crud_collection_dto.dart';
|
||||
|
||||
///
|
||||
/// Интерфейс взаимодействия с тренировкой
|
||||
///
|
||||
abstract interface class TrainingInterface {
|
||||
/// Получение списка тикетов для тренировки
|
||||
Future<List<Ticket>> getTraining();
|
||||
}
|
||||
49
lib/services/training/training_service.dart
Normal file
49
lib/services/training/training_service.dart
Normal file
@@ -0,0 +1,49 @@
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:injectable/injectable.dart';
|
||||
import 'package:remever/database/database.dart';
|
||||
import 'package:remever/inject.dart';
|
||||
import 'package:remever/services/training/training_interface.dart';
|
||||
|
||||
@Singleton(as: TrainingInterface)
|
||||
final class TrainingService implements TrainingInterface {
|
||||
// @override
|
||||
// Future<void> removeTicket(String ticketId) async {
|
||||
// return await getIt<AppDatabase>().ticketsDao.removeTicket(ticketId);
|
||||
// }
|
||||
|
||||
@override
|
||||
Future<List<Ticket>> getTraining() async {
|
||||
try {
|
||||
final db = getIt<AppDatabase>();
|
||||
|
||||
final rows =
|
||||
await db
|
||||
.customSelect('SELECT * FROM tickets ORDER BY RANDOM() LIMIT 10')
|
||||
.get();
|
||||
|
||||
return rows.map((row) {
|
||||
final data = row.data;
|
||||
print("ALARMA $data");
|
||||
|
||||
// Преобразуем snake_case ключи в camelCase для Moor сериализатора
|
||||
final camelCaseData = {
|
||||
'id': data['id'],
|
||||
'createdAt': data['created_at'],
|
||||
'updatedAt': data['updated_at'],
|
||||
'question': data['question'],
|
||||
'questionImage': data['question_image'],
|
||||
'answer': data['answer'],
|
||||
'answerImage': data['answer_image'],
|
||||
'collectionId': data['collection_id'],
|
||||
'progress': data['progress'],
|
||||
};
|
||||
|
||||
return Ticket.fromJson(camelCaseData);
|
||||
}).toList();
|
||||
} catch (e) {
|
||||
print('Error in training $e');
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user