import 'dart:io'; import 'package:e_porter/domain/models/transaction_model.dart'; import 'package:e_porter/domain/repositories/transaction_repository.dart'; class TransactionUseCase { final TransactionRepository _repository; TransactionUseCase(this._repository); Future createTransaction({ required String ticketId, required String flightId, required double amount, required String method, required DateTime expiryTime, required Map flightDetails, required Map bandaraDetails, Map? porterServiceDetails, required Map userDetails, required int passenger, required List> passengerDetails, // Tambah parameter ini required List numberSeat, // Tambah parameter ini }) { return _repository.createTransaction( ticketId: ticketId, flightId: flightId, amount: amount, method: method, expiryTime: expiryTime, flightDetails: flightDetails, bandaraDetails: bandaraDetails, porterServiceDetails: porterServiceDetails, userDetails: userDetails, passenger: passenger, passengerDetails: passengerDetails, // Tambahkan parameter ini numberSeat: numberSeat, // Tambahkan parameter ini ); } Future updateTransactionStatus({ required String ticketId, required String transactionId, required String status, required String userId, }) { return _repository.updateTransactionStatus( ticketId: ticketId, transactionId: transactionId, status: status, userId: userId, ); } Future uploadPaymentProof({ required String ticketId, required String transactionId, required File proofImage, }) { return _repository.uploadPaymentProof( ticketId: ticketId, transactionId: transactionId, proofImage: proofImage, ); } Future> getTransactionsByUserId(String userId) { return _repository.getTransactionsByUserId(userId); } Future getTransactionById({required String ticketId, required String transactionId}) { return _repository.getTransactionById(ticketId: ticketId, transactionId: transactionId); } Future syncTransactionToRealtimeDB({required String ticketId, required String transactionId}) { return _repository.syncTransactionToRealtimeDB(ticketId: ticketId, transactionId: transactionId); } Stream watchTransaction({required String ticketId, required String transactionId}) { return _repository.watchTransaction(ticketId: ticketId, transactionId: transactionId); } }