part of 'budget_bloc.dart';

sealed class BudgetEvent extends Equatable {
  const BudgetEvent();

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

final class BudgetsLoad extends BudgetEvent {
  final List<Budget> budgets;
  const BudgetsLoad(this.budgets);

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

final class BudgetAdd extends BudgetEvent {
  final String label;

  const BudgetAdd(this.label);

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

final class BudgetRemove extends BudgetEvent {
  final Budget budget;

  const BudgetRemove(this.budget);

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

final class BudgetSetValue extends BudgetEvent {
  final Budget budget;
  final double value;

  const BudgetSetValue(this.budget, this.value);

  @override
  List<Object> get props => [budget, value];
}

final class BudgetSetLabel extends BudgetEvent {
  final Budget budget;
  final String label;

  const BudgetSetLabel(this.budget, this.label);

  @override
  List<Object> get props => [budget, label];
}

final class BudgetCompareNext extends BudgetEvent {}
final class BudgetComparePrevious extends BudgetEvent {}
final class BudgetSetCompare extends BudgetEvent {}
final class BudgetSetInitial extends BudgetEvent {
  final double value;

  const BudgetSetInitial(this.value);

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