export type AuthPlatform = "firm" | "client";

const DEMO_EMAIL = "admin@gmail.com";
const DEMO_PASSWORD = "Thetitan@1234";

export interface AuthSession {
  email: string;
  platform: AuthPlatform;
}

function storageKey(platform: AuthPlatform) {
  return `abdelouhab-auth-${platform}`;
}

export function isAuthenticated(platform: AuthPlatform): boolean {
  if (typeof window === "undefined") return false;
  return localStorage.getItem(storageKey(platform)) === "true";
}

export function getSession(platform: AuthPlatform): AuthSession | null {
  if (!isAuthenticated(platform)) return null;
  const email = localStorage.getItem(`${storageKey(platform)}-email`) ?? DEMO_EMAIL;
  return { email, platform };
}

export function login(platform: AuthPlatform, email: string, password: string): boolean {
  const normalizedEmail = email.trim().toLowerCase();
  if (normalizedEmail === DEMO_EMAIL && password === DEMO_PASSWORD) {
    localStorage.setItem(storageKey(platform), "true");
    localStorage.setItem(`${storageKey(platform)}-email`, normalizedEmail);
    return true;
  }
  return false;
}

export function logout(platform: AuthPlatform): void {
  localStorage.removeItem(storageKey(platform));
  localStorage.removeItem(`${storageKey(platform)}-email`);
}
