// 认证事件 — AuthBloc 接收的用户操作和系统事件 part of 'auth_bloc.dart'; /// 认证事件基类 — 使用 sealed class 实现穷尽匹配 sealed class AuthEvent { const AuthEvent(); } /// App 启动 — 检查本地存储的认证状态 final class AppStarted extends AuthEvent { const AppStarted(); } /// 用户请求登录 final class LoginRequested extends AuthEvent { final String username; final String password; const LoginRequested({ required this.username, required this.password, }); } /// 用户请求注册 final class RegisterRequested extends AuthEvent { final String username; final String password; final String? displayName; const RegisterRequested({ required this.username, required this.password, this.displayName, }); } /// 用户选择角色(注册后的角色选择步骤) final class RoleSelected extends AuthEvent { final UserRoleType role; const RoleSelected(this.role); } /// 家长/监护人同意 PIPL 信息收集(审计 S-03) final class ParentalConsentAccepted extends AuthEvent { final DateTime consentAt; const ParentalConsentAccepted(this.consentAt); } /// 班级码加入(学生/家长加入班级) final class ClassCodeSubmitted extends AuthEvent { final String classCode; const ClassCodeSubmitted(this.classCode); } /// 用户请求登出 final class LogoutRequested extends AuthEvent { const LogoutRequested(); } /// 令牌刷新成功(由拦截器触发) final class TokenRefreshed extends AuthEvent { final AuthToken token; const TokenRefreshed(this.token); } /// 认证失败(由 401 拦截器触发) final class AuthExpired extends AuthEvent { const AuthExpired(); }