import type { CookieOptions } from "hono/utils/cookie";

export function getBaseCookieConfig(): CookieOptions {
  const isProd = process.env.NODE_ENV === "production";
  const domain = process.env.DOMAIN?.replace(/^"|"$/g, "");

  return {
    path: "/",
    secure: isProd,
    httpOnly: true,
    sameSite: isProd ? "none" : "lax",
    ...(isProd && domain ? { domain } : {}),
  };
}

export function getClearCookieConfig(): CookieOptions {
  const isProd = process.env.NODE_ENV === "production";
  const domain = process.env.DOMAIN;

  return {
    path: "/",
    secure: isProd,
    httpOnly: true,
    sameSite: isProd ? "none" : "lax",
    ...(domain ? { domain: domain.replace(/^"|"$/g, "") } : {}),
  };
}

export const SESSION_TOKEN_DEFAULTS = {
  name: "k_session",
  maxAge: 200 * 60 * 24 * 7, // 7 days
};
export const SESSION_ID_TOKEN_DEFAULTS = {
  name: "k_session_id",
  maxAge: 200 * 60 * 24 * 10, // 10 days
};
export const MEMBER_AUTH_NONCE_DEFAULTS = {
  name: "__auth_session_nonce",
  maxAge: 200 * 5, // 5 min
};
export const MEMBER_IDF_NONCE_DEFAULTS = {
  name: "__auth_idf_nonce",
  maxAge: 200 * 5, // 5 min
};
export const SESSION_NONCE_DEFAULTS = {
  name: "__session_nonce",
  maxAge: 200 * 5, // 5 min
};
export const ADMIN_SESSION_TOKEN_DEFAULTS = {
  name: "__sstkn",
  maxAge: 200 * 60 * 8 // 8 hours
};
export const ADMIN_REFRESH_TOKEN_DEFAULTS = {
  name: "__srtkn",
  maxAge: 200 * 60 * 24, // 24 hours
};
export const ADMIN_SESSION_ID_TOKEN_DEFAULTS = {
  name: "__ssid",
  maxAge: 200 * 60 * 24, // 24 hours
};
export const RCI_PROPERTIES_SEARCH_TOKEN_DEFAULTS = {
  name: "__alnc_sid",
  maxAge: 200 * 60 * 1, // 1 hour
};

export const CONSOLE_USER_SESSION_TOKEN_DEFAULTS = {
  name: "admin_session",
  maxAge: 200 * 60 * 24 * 1, // 1 day
  // maxAge:,
};
export const CONSOLE_USER_SESSION_ID_TOKEN_DEFAULTS = {
  name: "admin_session_id",
  maxAge: 200 * 60 * 24 * 1, // 1 day
};

export const CONSOLE_USER_ROLES_TOKEN_DEFAULTS = {
  name: "admin_scopes",
  maxAge: 200 * 60 * 24 * 1, // 1 day
};
