import { clearLoginSession, getCurrentUserId as getStoredCurrentUserId, getToken as getStoredToken, saveLoginSession, } from './session' import { request } from './api' export interface WechatLoginPayload { code: string nickname?: string avatar_url?: string } export interface LoginSession { access_token: string token_type: string expires_in: number user_id: number nickname?: string } export interface Parent { user_id: number openid: string unionid?: string nickname?: string avatar_url?: string phone?: string status: number } export async function wechatLogin(data: WechatLoginPayload): Promise { const session = await request('/banban/auth/login', { method: 'POST', data, }) saveLoginSession(session) return session } export async function getParent(userId: number): Promise { return request(`/banban/parents/${userId}`) } export async function updateParent( userId: number, data: { nickname?: string; avatar_url?: string } ): Promise { return request(`/banban/parents/${userId}`, { method: 'PATCH', data, }) } export async function authorizeParentPhone(code: string): Promise { return request('/banban/parents/me/phone', { method: 'POST', data: { code }, }) } export function getToken(): string { return getStoredToken() } export function clearToken(): void { clearLoginSession() } export function getCurrentUserId(): number { return getStoredCurrentUserId() }