feature(training): отбражение данных для тренировки

This commit is contained in:
2025-09-08 22:44:03 +03:00
parent 90531e6e4e
commit 845a380fbf
14 changed files with 1591 additions and 58 deletions

View File

@@ -1,11 +1,17 @@
import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:remever/database/database.dart';
import 'package:remever/inject.dart';
import 'package:remever/models/training_dto.dart';
import 'package:remever/services/training/training_interface.dart';
part 'training_state.dart';
part 'training_cubit.freezed.dart';
class TrainingCubit extends Cubit<TrainingState> {
TrainingCubit() : super(TrainingState.data());
TrainingCubit() : super(TrainingState.loading()) {
init();
}
Future<void> toLoading() async {
emit(TrainingState.loading());
@@ -16,10 +22,34 @@ class TrainingCubit extends Cubit<TrainingState> {
}
Future<void> toDataState() async {
emit(TrainingState.data());
emit(TrainingState.data([]));
}
Future<void> toResultState() async {
emit(TrainingState.result());
}
Future<void> init() async {
final List<Ticket> data = await getIt<TrainingInterface>().getTraining();
if (data.isEmpty) {
emit(TrainingState.empty());
return;
}
List<TrainingDto> dto = [];
for (final ticket in data) {
dto.add(
TrainingDto(
ticket: ticket,
collection: await getIt<AppDatabase>().collectionsDao
.getCollectionById(ticket.collectionId),
),
);
}
emit(TrainingState.data(dto));
}
}