import 'package:flutter_modular/flutter_modular.dart';
import 'package:krow_data_connect/krow_data_connect.dart';
import 'domain/repositories/payments_repository.dart';
import 'domain/usecases/get_payment_summary_usecase.dart';
import 'domain/usecases/get_payment_history_usecase.dart';
import 'data/repositories_impl/payments_repository_impl.dart';
import 'presentation/blocs/payments/payments_bloc.dart';
import 'presentation/pages/payments_page.dart';

class StaffPaymentsModule extends Module {
  @override
  void binds(Injector i) {
    // Data Connect Mocks
    i.add<FinancialRepositoryMock>(FinancialRepositoryMock.new);
    
    // Repositories
    i.add<PaymentsRepository>(PaymentsRepositoryImpl.new);
    
    // Use Cases
    i.add(GetPaymentSummaryUseCase.new);
    i.add(GetPaymentHistoryUseCase.new);
    
    // Blocs
    i.add(PaymentsBloc.new);
  }

  @override
  void routes(RouteManager r) {
    r.child('/', child: (context) => const PaymentsPage());
  }
}
