import type { NextResponse } from "next/server";
import { env, isProductionRuntime } from "@/server/env";

const thirtyDays = 30 * 24 * 60 * 60;

export function setAuthCookies(response: NextResponse, tokens: { accessToken: string; refreshToken: string }) {
  const config = env();
  const secure = isProductionRuntime(config);
  response.cookies.set("access_token", tokens.accessToken, {
    httpOnly: true,
    sameSite: "lax",
    secure,
    path: "/",
    maxAge: 15 * 60,
    domain: config.COOKIE_DOMAIN === "localhost" ? undefined : config.COOKIE_DOMAIN
  });
  response.cookies.set("refresh_token", tokens.refreshToken, {
    httpOnly: true,
    sameSite: "lax",
    secure,
    path: "/",
    maxAge: thirtyDays,
    domain: config.COOKIE_DOMAIN === "localhost" ? undefined : config.COOKIE_DOMAIN
  });
}

export function clearAuthCookies(response: NextResponse) {
  response.cookies.set("access_token", "", { path: "/", maxAge: 0 });
  response.cookies.set("refresh_token", "", { path: "/", maxAge: 0 });
}
