export type CreateMatrixResult = { ok: boolean status: number body?: any message?: string } export async function createMatrix(params: { token: string name: string email: string force?: boolean baseUrl?: string }): Promise { const { token, name, email, force = false, baseUrl = process.env.NEXT_PUBLIC_API_BASE_URL || '' } = params if (!token) return { ok: false, status: 401, message: 'Missing token' } const url = new URL(`${baseUrl}/api/matrix/create`) url.searchParams.set('name', name) url.searchParams.set('email', email) if (force) url.searchParams.set('force', 'true') try { const res = await fetch(url.toString(), { method: 'GET', headers: { Authorization: `Bearer ${token}`, }, credentials: 'include', }) let body: any = null try { body = await res.json() } catch {} if (!res.ok) { return { ok: false, status: res.status, body, message: body?.message || `Create matrix failed (${res.status})` } } return { ok: true, status: res.status, body } } catch (err) { return { ok: false, status: 0, message: 'Network error' } } }