refactor: update payments feature to use StaffPayment model and clean up unused code

This commit is contained in:
Achintha Isuru
2026-01-25 17:10:09 -05:00
parent 7c9252e0c3
commit 150905c1eb
9 changed files with 3 additions and 118 deletions

View File

@@ -6,7 +6,7 @@
/// Locales: 2
/// Strings: 1004 (502 per locale)
///
/// Built on 2026-01-25 at 22:00 UTC
/// Built on 2026-01-25 at 22:04 UTC
// coverage:ignore-file
// ignore_for_file: type=lint, unused_import

View File

@@ -1,18 +1,6 @@
<<<<<<< Updated upstream
import '../entities/payment_summary.dart';
import '../entities/payment_transaction.dart';
abstract class PaymentsRepository {
/// Fetches the summary of earnings (weekly, monthly, total, pending).
Future<PaymentSummary> getPaymentSummary();
/// Fetches the list of recent payment transactions (history).
Future<List<PaymentTransaction>> getPaymentHistory(String period);
=======
import 'package:krow_domain/krow_domain.dart';
abstract class PaymentsRepository {
/// Fetches the list of payments.
Future<List<StaffPayment>> getPayments();
>>>>>>> Stashed changes
}

View File

@@ -1,27 +1,15 @@
<<<<<<< Updated upstream
import '../entities/payment_transaction.dart';
import '../repositories/payments_repository.dart';
class GetPaymentHistoryUseCase {
=======
import 'package:krow_core/core.dart';
import 'package:krow_domain/krow_domain.dart';
import '../repositories/payments_repository.dart';
class GetPaymentHistoryUseCase extends UseCase<String, List<StaffPayment>> {
>>>>>>> Stashed changes
final PaymentsRepository repository;
GetPaymentHistoryUseCase(this.repository);
<<<<<<< Updated upstream
Future<List<PaymentTransaction>> call({String period = 'week'}) async {
return await repository.getPaymentHistory(period);
=======
@override
Future<List<StaffPayment>> call(String period) async {
// TODO: Implement filtering by period
return await repository.getPayments();
>>>>>>> Stashed changes
}
}

View File

@@ -1,26 +1,14 @@
<<<<<<< Updated upstream
import '../entities/payment_summary.dart';
import '../repositories/payments_repository.dart';
class GetPaymentSummaryUseCase {
=======
import 'package:krow_core/core.dart';
import 'package:krow_domain/krow_domain.dart';
import '../repositories/payments_repository.dart';
class GetPaymentSummaryUseCase extends NoInputUseCase<List<StaffPayment>> {
>>>>>>> Stashed changes
final PaymentsRepository repository;
GetPaymentSummaryUseCase(this.repository);
<<<<<<< Updated upstream
Future<PaymentSummary> call() async {
return await repository.getPaymentSummary();
=======
@override
Future<List<StaffPayment>> call() async {
return await repository.getPayments();
>>>>>>> Stashed changes
}
}

View File

@@ -1,31 +1,17 @@
import 'package:flutter_modular/flutter_modular.dart';
<<<<<<< Updated upstream
import 'domain/repositories/payments_repository.dart';
import 'domain/usecases/get_payment_summary_usecase.dart';
import 'domain/usecases/get_payment_history_usecase.dart';
import 'data/datasources/payments_remote_datasource.dart';
import 'data/datasources/payments_mock_datasource.dart';
import 'data/repositories/payments_repository_impl.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';
>>>>>>> Stashed changes
import 'presentation/blocs/payments/payments_bloc.dart';
import 'presentation/pages/payments_page.dart';
class StaffPaymentsModule extends Module {
@override
void binds(Injector i) {
<<<<<<< Updated upstream
// Data Sources
i.add<PaymentsRemoteDataSource>(PaymentsMockDataSource.new);
=======
// Data Connect Mocks
i.add<FinancialRepositoryMock>(FinancialRepositoryMock.new);
>>>>>>> Stashed changes
// Repositories
i.add<PaymentsRepository>(PaymentsRepositoryImpl.new);

View File

@@ -1,15 +1,8 @@
import 'package:flutter_bloc/flutter_bloc.dart';
<<<<<<< Updated upstream
import '../../../domain/entities/payment_summary.dart';
import '../../../domain/entities/payment_transaction.dart';
import '../../../domain/usecases/get_payment_summary_usecase.dart';
import '../../../domain/usecases/get_payment_history_usecase.dart';
=======
import 'package:krow_domain/krow_domain.dart';
import '../../../domain/usecases/get_payment_summary_usecase.dart';
import '../../../domain/usecases/get_payment_history_usecase.dart';
import '../../models/payment_stats.dart';
>>>>>>> Stashed changes
import 'payments_event.dart';
import 'payments_state.dart';
@@ -31,19 +24,12 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
) async {
emit(PaymentsLoading());
try {
<<<<<<< Updated upstream
final PaymentSummary summary = await getPaymentSummary();
final List<PaymentTransaction> history = await getPaymentHistory(period: 'week');
emit(PaymentsLoaded(
summary: summary,
=======
final List<StaffPayment> allPayments = await getPaymentSummary();
final PaymentStats stats = _calculateStats(allPayments);
final List<StaffPayment> history = await getPaymentHistory('week');
emit(PaymentsLoaded(
summary: stats,
>>>>>>> Stashed changes
history: history,
activePeriod: 'week',
));
@@ -60,15 +46,8 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
if (currentState is PaymentsLoaded) {
if (currentState.activePeriod == event.period) return;
<<<<<<< Updated upstream
// Optimistic update or set loading state if expecting delay
// For now, we'll keep the current data and fetch new history
try {
final List<PaymentTransaction> newHistory = await getPaymentHistory(period: event.period);
=======
try {
final List<StaffPayment> newHistory = await getPaymentHistory(event.period);
>>>>>>> Stashed changes
emit(currentState.copyWith(
history: newHistory,
activePeriod: event.period,
@@ -78,8 +57,6 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
}
}
}
<<<<<<< Updated upstream
=======
PaymentStats _calculateStats(List<StaffPayment> payments) {
double total = 0;
@@ -114,5 +91,4 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
monthlyEarnings: monthly,
);
}
>>>>>>> Stashed changes
}

View File

@@ -1,11 +1,6 @@
import 'package:equatable/equatable.dart';
<<<<<<< Updated upstream
import '../../../domain/entities/payment_summary.dart';
import '../../../domain/entities/payment_transaction.dart';
=======
import 'package:krow_domain/krow_domain.dart';
import '../../models/payment_stats.dart';
>>>>>>> Stashed changes
abstract class PaymentsState extends Equatable {
const PaymentsState();
@@ -19,13 +14,8 @@ class PaymentsInitial extends PaymentsState {}
class PaymentsLoading extends PaymentsState {}
class PaymentsLoaded extends PaymentsState {
<<<<<<< Updated upstream
final PaymentSummary summary;
final List<PaymentTransaction> history;
=======
final PaymentStats summary;
final List<StaffPayment> history;
>>>>>>> Stashed changes
final String activePeriod;
const PaymentsLoaded({
@@ -35,13 +25,8 @@ class PaymentsLoaded extends PaymentsState {
});
PaymentsLoaded copyWith({
<<<<<<< Updated upstream
PaymentSummary? summary,
List<PaymentTransaction>? history,
=======
PaymentStats? summary,
List<StaffPayment>? history,
>>>>>>> Stashed changes
String? activePeriod,
}) {
return PaymentsLoaded(

View File

@@ -3,11 +3,7 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_modular/flutter_modular.dart';
import 'package:lucide_icons/lucide_icons.dart';
import 'package:intl/intl.dart';
<<<<<<< Updated upstream
import '../../domain/entities/payment_transaction.dart';
=======
import 'package:krow_domain/krow_domain.dart';
>>>>>>> Stashed changes
import '../blocs/payments/payments_bloc.dart';
import '../blocs/payments/payments_event.dart';
import '../blocs/payments/payments_state.dart';
@@ -181,25 +177,11 @@ class _PaymentsPageState extends State<PaymentsPage> {
),
const SizedBox(height: 12),
Column(
<<<<<<< Updated upstream
children: state.history.map((PaymentTransaction payment) {
=======
children: state.history.map((StaffPayment payment) {
>>>>>>> Stashed changes
return Padding(
padding: const EdgeInsets.only(bottom: 8),
child: PaymentHistoryItem(
amount: payment.amount,
<<<<<<< Updated upstream
title: payment.title,
location: payment.location,
address: payment.address,
date: DateFormat('E, MMM d').format(payment.date),
workedTime: payment.workedTime,
hours: payment.hours,
rate: payment.rate,
status: payment.status,
=======
title: 'Assignment ${payment.assignmentId}',
location: 'Location', // TODO: Fetch from assignment
address: '',
@@ -208,7 +190,6 @@ class _PaymentsPageState extends State<PaymentsPage> {
hours: 0,
rate: 0,
status: payment.status.toString().split('.').last,
>>>>>>> Stashed changes
),
);
}).toList(),

View File

@@ -2,16 +2,10 @@ name: staff_payments
description: Staff Payments feature
version: 0.0.1
publish_to: 'none'
<<<<<<< Updated upstream
environment:
sdk: '>=3.0.0 <4.0.0'
=======
resolution: workspace
environment:
sdk: '>=3.10.0 <4.0.0'
>>>>>>> Stashed changes
flutter: ">=3.0.0"
dependencies:
@@ -28,11 +22,10 @@ dependencies:
path: ../../../core_localization
krow_domain:
path: ../../../domain
<<<<<<< Updated upstream
=======
krow_core:
path: ../../../core
>>>>>>> Stashed changes
krow_data_connect:
path: ../../../data_connect
dev_dependencies:
flutter_test: