import 'package:app_gaslieferung/model/car.dart';
import 'package:app_gaslieferung/repository/tour_repository.dart';
import 'package:bloc/bloc.dart';
import 'package:flutter/material.dart';
import 'event.dart';
import 'state.dart';

class TourSelectBloc extends Bloc<TourSelectEvent, TourSelectState> {
  TourRepository repository;

  TourSelectBloc({required this.repository}) : super(TourSelectInitial()) {
    on<TourSelectLoadMetadataEvent>(_onTourSelectLoadCarsEvent);
  }

  void _onTourSelectLoadCarsEvent(
    TourSelectLoadMetadataEvent event,
    Emitter<TourSelectState> emit,
  ) async {
    emit(TourSelectLoading());
    try {
      emit(TourSelectLoaded(data: await repository.getSupplierTourMetadata(event.sessionId)));
    } catch (e,st) {
      debugPrint("Error on loading cars: $e\n$st");
      emit(TourSelectError(message: "Es ist ein unbekannter Fehler aufgetreten. Versuchen Sie es erneut."));
    }
  }
}
