import 'package:comwell_key_app/services/models/booking_dto.dart';
import 'package:comwell_key_app/up_sales/models/upgrade.dart';
import 'package:comwell_key_app/up_sales/models/room_upgrade.dart';
import 'package:comwell_key_app/up_sales/models/addon_upgrade.dart';

extension AddOnItemDTOMapper on BookingAddonItem {
  Upgrade toUpgrade() {
    // Determine if this is a room upgrade or addon based on the code
    // You may need to adjust this logic based on your business rules
    if (code.contains('ROOM') || code.contains('SDP') || code.contains('STD')) {
      // This is a room upgrade
      return RoomUpgrade(
        id: code,
        name: description,
        price: price.toInt(),
        currency: "DKK",
        images: const [],
        description: description,
        quantity: quantity,
        facilityTypes: const [],
        roomSize: 0,
      );
    } else {
      // This is an addon upgrade
      return AddOnUpgrade(
        id: code,
        name: description,
        price: price.toInt(),
        currency: "DKK",
        images: const [],
        description: description,
        isSelected: false,
        quantity: quantity,
        isService: true,
        isPopular: false,
        onlyAvailableBeforeCheckin: false,
      );
    }
  }
}

  extension ListAddOnItemDTOMapper on List<BookingAddonItem> {
  List<Upgrade> toUpgrades() => map((dto) => dto.toUpgrade()).toList();
}