Ctrl K
ComunidadGuías…

lib/workspaces.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { createUserDataClient } from "@/lib/neon/server";

export type WorkspaceRow = {
  id: string;
  user_id: string;
  name: string;
  environment: string;
  bundle_id: string | null;
  status: string;
  last_activity_at: string | null;
  created_at: string;
  updated_at: string;
};

export function workspaceSlug(name: string) {
  return name.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 64);
}

export async function loadWorkspace(id: string, userId?: string) {
  let query = createUserDataClient().from("workspaces").select("*").eq("id", id);
  if (userId) query = query.eq("user_id", userId);
  const result = await query.maybeSingle();
  return result.data as WorkspaceRow | null;
}

export async function loadWorkspaceByName(name: string, userId: string) {
  const result = await createUserDataClient().from("workspaces").select("*").eq("user_id", userId).eq("name", name).maybeSingle();
  return result.data as WorkspaceRow | null;
}