/**
 * 共享类型定义（hooks 包内部使用）
 *
 * 维护者：ai13（teacher-portal）
 */

/**
 * 用户会话信息
 */
export interface UserSession {
  userId: string;
  username: string;
  displayName: string;
  avatarUrl?: string;
  roles: string[];
  /** 数据范围（DataScope 6 级） */
  dataScope?: DataScope;
}

/**
 * 数据范围（对齐 iam DataScope 6 级）
 */
export type DataScope =
  "ALL" | "SCHOOL" | "GRADE" | "CLASS" | "SUBJECT" | "SELF";

/**
 * 权限点检查结果
 */
export interface PermissionContext {
  /** 当前用户拥有的权限点列表 */
  permissions: string[];
  /** 当前用户的数据范围 */
  dataScope: DataScope;
  /** 当前用户的角色列表 */
  roles: string[];
}

/**
 * 视口（Viewport）- iam 4 层视口模型
 */
export interface Viewport {
  id: string;
  name: string;
  type: "admin" | "teacher" | "student" | "parent";
  scope: DataScope;
}

/**
 * 通知消息（Toast）
 */
export interface ToastMessage {
  id: string;
  type: "success" | "error" | "warning" | "info";
  title: string;
  description?: string;
  /** 自动关闭时长（ms），0 表示不自动关闭 */
  duration?: number;
}

/**
 * 鉴权状态
 */
export interface AuthState {
  user: UserSession | null;
  token: string | null;
  isAuthenticated: boolean;
  isLoading: boolean;
}
