import { CookieOptions, Response } from "express";
import { env } from "../config/env";

export const baseCookie: CookieOptions = {
  httpOnly: true,
  secure: env.cookie.secure,
  sameSite: "lax",
  domain: env.nodeEnv === "production" ? env.cookie.domain : undefined,
  path: "/",
};

const ACCESS_MAX_AGE = 15 * 60 * 1000;
const REFRESH_MAX_AGE = 30 * 24 * 60 * 60 * 1000;

export function setSessionCookies(res: Response, accessToken: string, refreshToken: string) {
  res.cookie("access_token", accessToken, { ...baseCookie, maxAge: ACCESS_MAX_AGE });
  res.cookie("refresh_token", refreshToken, { ...baseCookie, maxAge: REFRESH_MAX_AGE });
}

export function setAccessCookie(res: Response, accessToken: string) {
  res.cookie("access_token", accessToken, { ...baseCookie, maxAge: ACCESS_MAX_AGE });
}

export function clearSessionCookies(res: Response) {
  res.clearCookie("access_token", baseCookie);
  res.clearCookie("refresh_token", baseCookie);
}
