import { AppUserRecord, UserRole } from "./userManagementTypes";

export interface AuthSession {
  user: AppUserRecord;
  token: string;
  expiresAt: string;
}

export interface LoginResponse {
  success: boolean;
  user?: AppUserRecord;
  redirectUrl?: string;
  message?: string;
}

/**
 * Smart Redirect Berdasarkan Role Pengguna
 * - Super Admin / Kurikulum -> /dashboard (/)
 * - Guru BK -> /kesiswaan
 * - Guru Mapel / Wali Kelas -> /akademik / kurikulum / guru
 * - Siswa / Orang Tua -> Portal Siswa / Portal Ortu
 * - Calon Siswa (SPMB) -> Portal SPMB
 */
export function getRoleRedirectPath(role: UserRole | string): string {
  const roles = typeof role === "string" ? role.split(",").map((r) => r.trim()) : [role];

  if (roles.includes("Super Admin")) return "/";
  if (roles.includes("Kurikulum")) return "/kurikulum";
  if (roles.includes("Kesiswaan") || roles.includes("KESISWAAN") || roles.includes("Guru BK")) return "/kesiswaan";

  // MULTI-ROLE TEACHER & GURU MAPEL:
  // Untuk pengguna yang memegang multi-role guru (contoh: Guru Mapel + Wali Kelas + Guru Piket)
  // maupun Guru Mapel tunggal, arahkan landing page secara pasti ke /guru
  const isMultiRoleTeacher =
    (roles.includes("Guru Mapel") && (roles.includes("Wali Kelas") || roles.includes("Guru Piket"))) ||
    (roles.includes("Wali Kelas") && roles.includes("Guru Piket"));

  if (isMultiRoleTeacher || roles.includes("Guru Mapel")) return "/guru";
  if (roles.includes("Wali Kelas")) return "/wali-kelas";
  if (roles.includes("Sarpras")) return "/sarpras";
  if (roles.includes("Humas")) return "/humas";
  if (roles.includes("Tata Usaha (TU)")) return "/tu";
  if (roles.includes("Guru Piket")) return "/presensi";
  if (roles.includes("Panitia SPMB")) return "/spmb";
  if (roles.includes("Siswa")) return "/portal-siswa";
  if (roles.includes("Orang Tua / Wali")) return "/portal-ortu";
  if (roles.includes("Calon Siswa (SPMB)")) return "/spmb";
  return "/";
}
