import 'package:comwell_key_app/domain/repositories/housekeeping_repository.dart';
import 'package:comwell_key_app/presentation/base/base_cubit.dart';
import 'package:comwell_key_app/presentation/screens/house_keeping/cubit/housekeeping_state.dart';
import 'package:comwell_key_app/overview/models/booking.dart';
import 'package:comwell_key_app/tracking/comwell_tracking.dart';
import 'package:comwell_key_app/tracking/models/analytics_event_item.dart';
import 'package:comwell_key_app/utils/locator.dart';
import '../components/housekeeping_service.dart';
class HouseKeepingCubit extends BaseCubit<HouseKeepingState> {
final houseKeepingRepository = HouseKeepingRepository();
final tracking = locator<ComwellTracking>();
HouseKeepingCubit() : super(HouseKeepingState.initial());
final Iterable<HouseKeepingService> servicesSupplies = [
HouseKeepingService.soap,
HouseKeepingService.towels,
HouseKeepingService.trash,
HouseKeepingService.refill
];
void onAddServiceClicked(String service) {
final List<String> updatedServices = List.from(state.selectedServices)
..add(service);
safeEmit(state.servicesSelected(selectedServices: updatedServices));
}
void onRemoveServiceClicked(String service) {
final List<String> updatedServices = List.from(state.selectedServices)
..remove(service);
safeEmit(state.servicesSelected(selectedServices: updatedServices));
}
void onServiceClicked(String name) {
if (state.selectedServices.contains(name)) {
onRemoveServiceClicked(name);
} else {
onAddServiceClicked(name);
}
}
Future<List<String>> onOrderHousekeepingClicked(Booking booking) async {
final analyticsEventItem = AnalyticsEventItem(
hotelName: booking.hotelName,
currency: "DKK",
value: 0,
placement: "housekeeping_page",
items: state.selectedServices.map((e) => HouseKeepingService.values.firstWhere((element) => element.name == e).name).toList(),
itemIds: state.selectedServices.map((e) => HouseKeepingService.values.firstWhere((element) => element.name == e).name).toList(),
bookingReference: booking.confirmationNumber);
tracking.trackAddToCart(analyticsEventItem);
return state.selectedServices.toList();
}
}