import 'package:equatable/equatable.dart';

sealed class KBState extends Equatable {
  const KBState();
  @override
  List<Object?> get props => [];
}

class KBInitial extends KBState {
  const KBInitial();
}

class KBLoading extends KBState {
  const KBLoading();
}

class KBLoaded extends KBState {
  final List<String> knowledgeBases;

  const KBLoaded(this.knowledgeBases);

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

class KBError extends KBState {
  final String message;
  const KBError(this.message);

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

class KBUploading extends KBState {
  const KBUploading();
}

class KBUploadSuccess extends KBState {
  final String message;
  const KBUploadSuccess(this.message);

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

class KBUploadError extends KBState {
  final String message;
  const KBUploadError(this.message);

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