import 'package:mobx/mobx.dart';

part 'authentication_store.g.dart';

class AuthenticationStore = AuthenticationStoreBase with _$AuthenticationStore;

enum AuthenticationState { uninitialized, installed, allowed, denied }

abstract class AuthenticationStoreBase with Store {
  AuthenticationStoreBase() : state = AuthenticationState.uninitialized;

  @observable
  AuthenticationState state;

  @action
  void installed() => state = AuthenticationState.installed;

  @action
  void allowed() => state = AuthenticationState.allowed;

  @action
  void denied() => state = AuthenticationState.denied;
}