import 'package:common/localization/l10n_utils.dart';
import 'package:concierge/presentation/app/cart_cubit.dart';
import 'package:concierge/presentation/widgets/toggle_list_item.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:gap/gap.dart';

class SelectPaymentMethod extends StatelessWidget {
  const SelectPaymentMethod({super.key});

  @override
  Widget build(BuildContext context) {
    final cartCubit = context.read<CartCubit>();
    return Material(
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: [
          buildPaymentOption(
            context,
            icon: Icons.bed_outlined,
            title: context.strings.charge_to_room,
            subtitle: context.strings.you_will_pay_at_checkout,
            isSelected: cartCubit.state.chargeToRoom,
            isChargeToRoom: true,
          ),
          const Gap(12),
          buildPaymentOption(
            context,
            icon: Icons.credit_card,
            title: context.strings.you_will_pay_at_checkout,
            subtitle: context.strings.select_payment_method_next_step,
            isSelected: !cartCubit.state.chargeToRoom,
            isChargeToRoom: false,
          ),
        ],
      ),
    );
  }

  Widget buildPaymentOption(
    BuildContext context, {
    required IconData icon,
    required String title,
    required String subtitle,
    required bool isSelected,
    required bool isChargeToRoom,
  }) {
    final cartCubit = context.read<CartCubit>();
    return ToggleListItem(
      icon: icon,
      title: title,
      subtitle: subtitle,
      isSelected: isSelected,
      onClick: (_) {
        cartCubit.updatePaymentMethod(isChargeToRoom);
      },
    );
  }
}