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 /// Locales: 2
/// Strings: 1004 (502 per locale) /// 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 // coverage:ignore-file
// ignore_for_file: type=lint, unused_import // 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'; import 'package:krow_domain/krow_domain.dart';
abstract class PaymentsRepository { abstract class PaymentsRepository {
/// Fetches the list of payments. /// Fetches the list of payments.
Future<List<StaffPayment>> getPayments(); 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_core/core.dart';
import 'package:krow_domain/krow_domain.dart'; import 'package:krow_domain/krow_domain.dart';
import '../repositories/payments_repository.dart'; import '../repositories/payments_repository.dart';
class GetPaymentHistoryUseCase extends UseCase<String, List<StaffPayment>> { class GetPaymentHistoryUseCase extends UseCase<String, List<StaffPayment>> {
>>>>>>> Stashed changes
final PaymentsRepository repository; final PaymentsRepository repository;
GetPaymentHistoryUseCase(this.repository); GetPaymentHistoryUseCase(this.repository);
<<<<<<< Updated upstream
Future<List<PaymentTransaction>> call({String period = 'week'}) async {
return await repository.getPaymentHistory(period);
=======
@override @override
Future<List<StaffPayment>> call(String period) async { Future<List<StaffPayment>> call(String period) async {
// TODO: Implement filtering by period // TODO: Implement filtering by period
return await repository.getPayments(); 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_core/core.dart';
import 'package:krow_domain/krow_domain.dart'; import 'package:krow_domain/krow_domain.dart';
import '../repositories/payments_repository.dart'; import '../repositories/payments_repository.dart';
class GetPaymentSummaryUseCase extends NoInputUseCase<List<StaffPayment>> { class GetPaymentSummaryUseCase extends NoInputUseCase<List<StaffPayment>> {
>>>>>>> Stashed changes
final PaymentsRepository repository; final PaymentsRepository repository;
GetPaymentSummaryUseCase(this.repository); GetPaymentSummaryUseCase(this.repository);
<<<<<<< Updated upstream
Future<PaymentSummary> call() async {
return await repository.getPaymentSummary();
=======
@override @override
Future<List<StaffPayment>> call() async { Future<List<StaffPayment>> call() async {
return await repository.getPayments(); return await repository.getPayments();
>>>>>>> Stashed changes
} }
} }

View File

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

View File

@@ -1,15 +1,8 @@
import 'package:flutter_bloc/flutter_bloc.dart'; 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 'package:krow_domain/krow_domain.dart';
import '../../../domain/usecases/get_payment_summary_usecase.dart'; import '../../../domain/usecases/get_payment_summary_usecase.dart';
import '../../../domain/usecases/get_payment_history_usecase.dart'; import '../../../domain/usecases/get_payment_history_usecase.dart';
import '../../models/payment_stats.dart'; import '../../models/payment_stats.dart';
>>>>>>> Stashed changes
import 'payments_event.dart'; import 'payments_event.dart';
import 'payments_state.dart'; import 'payments_state.dart';
@@ -31,19 +24,12 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
) async { ) async {
emit(PaymentsLoading()); emit(PaymentsLoading());
try { 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 List<StaffPayment> allPayments = await getPaymentSummary();
final PaymentStats stats = _calculateStats(allPayments); final PaymentStats stats = _calculateStats(allPayments);
final List<StaffPayment> history = await getPaymentHistory('week'); final List<StaffPayment> history = await getPaymentHistory('week');
emit(PaymentsLoaded( emit(PaymentsLoaded(
summary: stats, summary: stats,
>>>>>>> Stashed changes
history: history, history: history,
activePeriod: 'week', activePeriod: 'week',
)); ));
@@ -60,15 +46,8 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
if (currentState is PaymentsLoaded) { if (currentState is PaymentsLoaded) {
if (currentState.activePeriod == event.period) return; 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 { try {
final List<StaffPayment> newHistory = await getPaymentHistory(event.period); final List<StaffPayment> newHistory = await getPaymentHistory(event.period);
>>>>>>> Stashed changes
emit(currentState.copyWith( emit(currentState.copyWith(
history: newHistory, history: newHistory,
activePeriod: event.period, activePeriod: event.period,
@@ -78,8 +57,6 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
} }
} }
} }
<<<<<<< Updated upstream
=======
PaymentStats _calculateStats(List<StaffPayment> payments) { PaymentStats _calculateStats(List<StaffPayment> payments) {
double total = 0; double total = 0;
@@ -114,5 +91,4 @@ class PaymentsBloc extends Bloc<PaymentsEvent, PaymentsState> {
monthlyEarnings: monthly, monthlyEarnings: monthly,
); );
} }
>>>>>>> Stashed changes
} }

View File

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

View File

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

View File

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