/// States pour SystemSettingsBloc
library system_settings_state;

import 'package:equatable/equatable.dart';
import '../../data/models/system_config_model.dart';
import '../../data/models/cache_stats_model.dart';
import '../../data/models/system_metrics_model.dart';

abstract class SystemSettingsState extends Equatable {
  const SystemSettingsState();

  @override
  List<Object?> get props => [];
}

class SystemSettingsInitial extends SystemSettingsState {}

class SystemSettingsLoading extends SystemSettingsState {}

class SystemConfigLoaded extends SystemSettingsState {
  final SystemConfigModel config;

  const SystemConfigLoaded(this.config);

  @override
  List<Object?> get props => [config];
}

class CacheStatsLoaded extends SystemSettingsState {
  final CacheStatsModel stats;

  const CacheStatsLoaded(this.stats);

  @override
  List<Object?> get props => [stats];
}

class SystemMetricsLoaded extends SystemSettingsState {
  final SystemMetricsModel metrics;

  const SystemMetricsLoaded(this.metrics);

  @override
  List<Object?> get props => [metrics];
}

class SystemSettingsSuccess extends SystemSettingsState {
  final String message;

  const SystemSettingsSuccess(this.message);

  @override
  List<Object?> get props => [message];
}

class SystemSettingsError extends SystemSettingsState {
  final String error;

  const SystemSettingsError(this.error);

  @override
  List<Object?> get props => [error];
}
