import { apiClient } from "./client"; interface VerifyEmailResponse { success: boolean; reason?: string; } interface KidLinkCodeResponse { success: boolean; code?: string; expiresInSeconds?: number; reason?: string; } export async function verifyEmail( code: string, ): Promise<{ success: boolean; error?: string }> { try { const response: VerifyEmailResponse = await apiClient.post( "/parent/verifyemail", { code }, ); return { success: response.success }; } catch (e) { console.error("Failed to verify email", e); return { success: false, error: e instanceof Error ? e.message : "Failed to verify email", }; } } export async function requestKidLinkCode(): Promise<{ success: boolean; code?: string; expiresInSeconds?: number; error?: string; }> { try { const response: KidLinkCodeResponse = await apiClient.post( "/parent/kid-link-code", ); if (!response.success || !response.code) { return { success: false, error: response.reason || "Failed to generate link code", }; } return { success: true, code: response.code, expiresInSeconds: response.expiresInSeconds, }; } catch (e) { console.error("Failed to request kid link code", e); return { success: false, error: e instanceof Error ? e.message : "Failed to generate link code", }; } } export interface UserProfile { email: string; emailVerified: boolean; } export async function getUserProfile(): Promise { try { const response = await apiClient.get<{ success: boolean; profile: UserProfile; }>("/parent/profile"); return response.profile; } catch (e) { console.error("Failed to fetch user profile", e); return null; } }