import 'package:concierge/data/remote/models/order.dart';
import 'package:concierge/domain/models/app_error.dart';
import 'package:concierge/domain/repositories/property_repository.dart';
import 'package:concierge/presentation/base/base_cubit.dart';
import 'package:concierge/presentation/screens/receipt/bloc/receipt_state.dart';

class ReceiptCubit extends BaseCubit<ReceiptState> {
  final int orderId;
  final PropertyRepository _propertyRepository;

  late final Order order;

  ReceiptCubit(this._propertyRepository, {required this.orderId}) : super(const ReceiptState()) {
    init();
  }

  Future<void> init() async {
    try {
      safeEmit(state.copyWith(isLoading: true));
      final response = await _propertyRepository.getOrder(orderId);
      order = response;
    } catch (e, st) {
      handleError(e, st);
      safeEmit(state.copyWith(error: AppError.unknown(e.toString())));
    } finally {
      safeEmit(state.copyWith(isLoading: false));
    }
  }
}