import 'package:freezed_annotation/freezed_annotation.dart';

part 'auth_state.freezed.dart';

/// 登录状态。
///
/// [alert] 为一次性提示（登录失效、注册成功等），UI 展示后须调用
/// `AuthController.consumeAlert()` 消费，避免重建时重复弹出。
@freezed
class AuthState with _$AuthState {
  const AuthState._();

  const factory AuthState({
    @Default(false) bool loggedIn,
    @Default(false) bool restoring,
    @Default(false) bool submitting,
    String? username,
    String? error,
    String? alert,
  }) = _AuthState;

  /// 是否应禁用输入与提交按钮。
  bool get busy => submitting || restoring;
}
