Appli Flutter se connecte bien à l'API.
This commit is contained in:
@@ -0,0 +1,163 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import '../../../../core/models/membre_model.dart';
|
||||
import '../../../../core/errors/failures.dart';
|
||||
|
||||
/// États pour le BLoC des membres
|
||||
abstract class MembresState extends Equatable {
|
||||
const MembresState();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
/// État initial
|
||||
class MembresInitial extends MembresState {
|
||||
const MembresInitial();
|
||||
}
|
||||
|
||||
/// État de chargement
|
||||
class MembresLoading extends MembresState {
|
||||
const MembresLoading();
|
||||
}
|
||||
|
||||
/// État de chargement avec données existantes (pour le refresh)
|
||||
class MembresRefreshing extends MembresState {
|
||||
const MembresRefreshing(this.currentMembres);
|
||||
|
||||
final List<MembreModel> currentMembres;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [currentMembres];
|
||||
}
|
||||
|
||||
/// État de succès avec liste des membres
|
||||
class MembresLoaded extends MembresState {
|
||||
const MembresLoaded({
|
||||
required this.membres,
|
||||
this.isSearchResult = false,
|
||||
this.searchQuery,
|
||||
});
|
||||
|
||||
final List<MembreModel> membres;
|
||||
final bool isSearchResult;
|
||||
final String? searchQuery;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [membres, isSearchResult, searchQuery];
|
||||
|
||||
/// Copie avec modifications
|
||||
MembresLoaded copyWith({
|
||||
List<MembreModel>? membres,
|
||||
bool? isSearchResult,
|
||||
String? searchQuery,
|
||||
}) {
|
||||
return MembresLoaded(
|
||||
membres: membres ?? this.membres,
|
||||
isSearchResult: isSearchResult ?? this.isSearchResult,
|
||||
searchQuery: searchQuery ?? this.searchQuery,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// État de succès pour un membre spécifique
|
||||
class MembreDetailLoaded extends MembresState {
|
||||
const MembreDetailLoaded(this.membre);
|
||||
|
||||
final MembreModel membre;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [membre];
|
||||
}
|
||||
|
||||
/// État de succès pour les statistiques
|
||||
class MembresStatsLoaded extends MembresState {
|
||||
const MembresStatsLoaded(this.stats);
|
||||
|
||||
final Map<String, dynamic> stats;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [stats];
|
||||
}
|
||||
|
||||
/// État de succès pour la création d'un membre
|
||||
class MembreCreated extends MembresState {
|
||||
const MembreCreated(this.membre);
|
||||
|
||||
final MembreModel membre;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [membre];
|
||||
}
|
||||
|
||||
/// État de succès pour la mise à jour d'un membre
|
||||
class MembreUpdated extends MembresState {
|
||||
const MembreUpdated(this.membre);
|
||||
|
||||
final MembreModel membre;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [membre];
|
||||
}
|
||||
|
||||
/// État de succès pour la suppression d'un membre
|
||||
class MembreDeleted extends MembresState {
|
||||
const MembreDeleted(this.membreId);
|
||||
|
||||
final String membreId;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [membreId];
|
||||
}
|
||||
|
||||
/// État d'erreur
|
||||
class MembresError extends MembresState {
|
||||
const MembresError({
|
||||
required this.failure,
|
||||
this.previousState,
|
||||
});
|
||||
|
||||
final Failure failure;
|
||||
final MembresState? previousState;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [failure, previousState];
|
||||
|
||||
/// Message d'erreur formaté
|
||||
String get message => failure.message;
|
||||
|
||||
/// Code d'erreur
|
||||
String? get code => failure.code;
|
||||
|
||||
/// Indique si c'est une erreur réseau
|
||||
bool get isNetworkError => failure is NetworkFailure;
|
||||
|
||||
/// Indique si c'est une erreur serveur
|
||||
bool get isServerError => failure is ServerFailure;
|
||||
|
||||
/// Indique si c'est une erreur d'authentification
|
||||
bool get isAuthError => failure is AuthFailure;
|
||||
|
||||
/// Indique si c'est une erreur de validation
|
||||
bool get isValidationError => failure is ValidationFailure;
|
||||
}
|
||||
|
||||
/// État d'erreur avec données existantes (pour les erreurs non critiques)
|
||||
class MembresErrorWithData extends MembresState {
|
||||
const MembresErrorWithData({
|
||||
required this.failure,
|
||||
required this.membres,
|
||||
this.isSearchResult = false,
|
||||
this.searchQuery,
|
||||
});
|
||||
|
||||
final Failure failure;
|
||||
final List<MembreModel> membres;
|
||||
final bool isSearchResult;
|
||||
final String? searchQuery;
|
||||
|
||||
@override
|
||||
List<Object?> get props => [failure, membres, isSearchResult, searchQuery];
|
||||
|
||||
/// Message d'erreur formaté
|
||||
String get message => failure.message;
|
||||
}
|
||||
Reference in New Issue
Block a user