// Copyright (C) 2022 WYATT GROUP
// Please see the AUTHORS file for details.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <https://www.gnu.org/licenses/>.

part of 'crud_cubit.dart';

abstract class CrudState extends Equatable {
  const CrudState();

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

class CrudInitial extends CrudState {}

class CrudLoading extends CrudState {}

abstract class CrudSuccess extends CrudState {
  const CrudSuccess();
}

class CrudOkReturn extends CrudState {
  const CrudOkReturn();
}

class CrudError extends CrudState {

  const CrudError(this.message);
  final String? message;

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

class CrudLoaded<T> extends CrudSuccess {

  const CrudLoaded(this.data);
  final T? data;

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

class CrudListLoaded<T> extends CrudSuccess {

  const CrudListLoaded(this.data);
  final List<T?> data;

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