import { env } from "./server-env";
import { publicOrigin as origin, sameOrigin } from "../server/security.ts";
export { sameOrigin };
export function cleanText(value: FormDataEntryValue | null, max = 2000) {
  return String(value || "")
    .trim()
    .slice(0, max);
}
export function publicOrigin(_request?: Request) {
  return origin();
}
export function publicUrl(_request: Request, path: string) {
  return new URL(path, origin());
}
export async function audit(
  actorUserId: string,
  action: string,
  resourceType: string,
  resourceId: string,
  metadata?: unknown,
) {
  await env.DB.prepare(
    "INSERT INTO audit_logs (id,actor_user_id,action,resource_type,resource_id,metadata,created_at) VALUES (?,?,?,?,?,?,?)",
  )
    .bind(
      crypto.randomUUID(),
      actorUserId,
      action,
      resourceType,
      resourceId,
      metadata ? JSON.stringify(metadata) : null,
      new Date().toISOString(),
    )
    .run();
}
