- Task #6: WebSocket /ws/dashboard + Kafka events (5 topics) * Backend: KafkaEventProducer, KafkaEventConsumer * Mobile: WebSocketService (reconnection, heartbeat, typed events) * DashboardBloc: Auto-refresh depuis WebSocket events - Finance Workflow: approbations + budgets (backend + mobile) * Backend: entities, services, resources, migrations Flyway V6 * Mobile: features finance_workflow complète avec BLoC - Corrections DI: interfaces IRepository partout * IProfileRepository, IOrganizationRepository, IMembreRepository * GetIt configuré avec @injectable - Spec-Kit: constitution + templates mis à jour * .specify/memory/constitution.md enrichie * Templates agent, plan, spec, tasks, checklist - Nettoyage: fichiers temporaires supprimés Signed-off-by: lions dev Team
68 lines
1.5 KiB
Dart
68 lines
1.5 KiB
Dart
import 'package:equatable/equatable.dart';
|
|
|
|
class FinanceSummary extends Equatable {
|
|
final double totalContributionsPaid;
|
|
final double totalContributionsPending;
|
|
final double epargneBalance;
|
|
|
|
const FinanceSummary({
|
|
required this.totalContributionsPaid,
|
|
required this.totalContributionsPending,
|
|
required this.epargneBalance,
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [totalContributionsPaid, totalContributionsPending, epargneBalance];
|
|
}
|
|
|
|
class FinanceTransaction extends Equatable {
|
|
final String id;
|
|
final String title;
|
|
final String date;
|
|
final double amount;
|
|
final String status;
|
|
|
|
const FinanceTransaction({
|
|
required this.id,
|
|
required this.title,
|
|
required this.date,
|
|
required this.amount,
|
|
required this.status, // "Payé", "En attente"
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [id, title, date, amount, status];
|
|
}
|
|
|
|
abstract class FinanceState extends Equatable {
|
|
const FinanceState();
|
|
|
|
@override
|
|
List<Object?> get props => [];
|
|
}
|
|
|
|
class FinanceInitial extends FinanceState {}
|
|
|
|
class FinanceLoading extends FinanceState {}
|
|
|
|
class FinanceLoaded extends FinanceState {
|
|
final FinanceSummary summary;
|
|
final List<FinanceTransaction> transactions;
|
|
|
|
const FinanceLoaded({
|
|
required this.summary,
|
|
required this.transactions,
|
|
});
|
|
|
|
@override
|
|
List<Object?> get props => [summary, transactions];
|
|
}
|
|
|
|
class FinanceError extends FinanceState {
|
|
final String message;
|
|
const FinanceError(this.message);
|
|
|
|
@override
|
|
List<Object?> get props => [message];
|
|
}
|