lib/workspaces.ts
Rama main · réplica de lectura del repositorio original.
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;
}