import { NextResponse } from "next/server";

export const AUTH_COOKIE = "postsync_auth";
export const USER_COOKIE = "postsync_user";

export interface SessionUser {
  id: string;
  name: string;
  email: string;
  initials: string;
}

export function initialsFromName(name: string): string {
  return name
    .split(" ")
    .map((part) => part[0])
    .join("")
    .slice(0, 2)
    .toUpperCase();
}

export function attachSessionCookies(response: NextResponse, user: SessionUser) {
  response.cookies.set(AUTH_COOKIE, "1", {
    httpOnly: true,
    secure: process.env.NODE_ENV === "production",
    sameSite: "lax",
    maxAge: 60 * 60 * 24 * 7,
    path: "/",
  });

  response.cookies.set(USER_COOKIE, JSON.stringify(user), {
    httpOnly: false,
    secure: process.env.NODE_ENV === "production",
    sameSite: "lax",
    maxAge: 60 * 60 * 24 * 7,
    path: "/",
  });

  return response;
}

export function clearSessionCookies(response: NextResponse) {
  response.cookies.set(AUTH_COOKIE, "", { maxAge: 0, path: "/" });
  response.cookies.set(USER_COOKIE, "", { maxAge: 0, path: "/" });
  return response;
}
