import { del, get, post } from '@/lib/http/client' import type { SocialAccountInfo, SocialAccountUnbindRequest, SocialBindingStartRequest, SocialBindingStartResponse, } from '@/types' interface SocialAccountsResponse { items?: SocialAccountInfo[] accounts?: SocialAccountInfo[] social_accounts?: SocialAccountInfo[] } function normalizeSocialAccounts(payload: SocialAccountInfo[] | SocialAccountsResponse): SocialAccountInfo[] { if (Array.isArray(payload)) { return payload } if (Array.isArray(payload.items)) { return payload.items } if (Array.isArray(payload.accounts)) { return payload.accounts } if (Array.isArray(payload.social_accounts)) { return payload.social_accounts } return [] } export async function listSocialAccounts(): Promise { const payload = await get('/users/me/social-accounts') return normalizeSocialAccounts(payload) } export function startSocialBinding( payload: SocialBindingStartRequest, ): Promise { return post('/users/me/bind-social', payload) } export function unbindSocialAccount( provider: string, payload?: SocialAccountUnbindRequest, ): Promise { return del(`/users/me/bind-social/${provider}`, { body: payload }) }