import jwt from "jsonwebtoken";
import { env } from "../env.js";

export type AuthPayload = {
  sub: number;
  username: string;
};

const EXPIRES_IN = "7d";

export function signAuthToken(payload: AuthPayload): string {
  return jwt.sign(payload, env.JWT_SECRET, { expiresIn: EXPIRES_IN });
}

export function verifyAuthToken(token: string): AuthPayload {
  const decoded = jwt.verify(token, env.JWT_SECRET);
  if (typeof decoded === "string") {
    throw new Error("Token malformado");
  }
  return decoded as unknown as AuthPayload;
}

export const AUTH_COOKIE_NAME = "auth_token";
export const AUTH_COOKIE_MAX_AGE_MS = 7 * 24 * 60 * 60 * 1000;
