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 { TrainingCubit() : super(TrainingState.loading()) { init(); } Future toLoading() async { emit(TrainingState.loading()); } Future toEmptyState() async { emit(TrainingState.empty()); } Future toDataState() async { emit(TrainingState.data([])); } Future toResultState() async { emit(TrainingState.result()); } Future init() async { final List data = await getIt().getTraining(); if (data.isEmpty) { emit(TrainingState.empty()); return; } List dto = []; for (final ticket in data) { dto.add( TrainingDto( ticket: ticket, collection: await getIt().collectionsDao .getCollectionById(ticket.collectionId), ), ); } emit(TrainingState.data(dto)); } }