import {DefaultSession} from "next-auth";
import {JWT} from "next-auth/jwt";
import {PlatformRole, PreferredLanguage, SessionMembership} from "@/features/auth/types";

declare module "next-auth" {
  interface Session {
    user: DefaultSession["user"] & {
      id: string;
      platformRole: PlatformRole;
      memberships: SessionMembership[];
      activeTenantId?: string | null;
      preferredLanguage: PreferredLanguage;
    };
    activeTenantId?: string | null;
  }

  interface User {
    id: string;
    platformRole: PlatformRole;
    memberships: SessionMembership[];
    activeTenantId?: string | null;
    preferredLanguage: PreferredLanguage;
  }
}

declare module "next-auth/jwt" {
  interface JWT {
    userId?: string;
    platformRole?: PlatformRole;
    memberships?: SessionMembership[];
    activeTenantId?: string | null;
    preferredLanguage?: PreferredLanguage;
  }
}