- 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
33 lines
770 B
Dart
33 lines
770 B
Dart
part of 'profile_bloc.dart';
|
|
|
|
abstract class ProfileEvent extends Equatable {
|
|
const ProfileEvent();
|
|
|
|
@override
|
|
List<Object?> get props => [];
|
|
}
|
|
|
|
/// Charge le profil du membre connecté (GET /api/membres/me) - prioritaire
|
|
class LoadMe extends ProfileEvent {
|
|
const LoadMe();
|
|
}
|
|
|
|
/// Charge le profil par email (recherche) - fallback ou admin
|
|
class LoadMyProfile extends ProfileEvent {
|
|
final String email;
|
|
const LoadMyProfile(this.email);
|
|
|
|
@override
|
|
List<Object?> get props => [email];
|
|
}
|
|
|
|
/// Met à jour le profil
|
|
class UpdateMyProfile extends ProfileEvent {
|
|
final String membreId;
|
|
final MembreCompletModel membre;
|
|
const UpdateMyProfile({required this.membreId, required this.membre});
|
|
|
|
@override
|
|
List<Object?> get props => [membreId, membre];
|
|
}
|