import { normalizeAppProfile, normalizeProfileUpdatePayload, normalizeRecommendationPreference } from './profile-contract.js' import { requestStrict } from './request-client.js' export const profileApi = { async getProfile(requestOptions = {}) { const profile = await requestStrict({ url: '/genealogy/app/auth/profile', method: 'GET' }, { requestController: requestOptions.requestController ?? null }) return normalizeAppProfile(profile) }, async updateProfile(payload, requestOptions = {}) { const profileChanges = normalizeProfileUpdatePayload(payload) const profile = await requestStrict({ url: '/genealogy/app/auth/profile', method: 'PUT', data: profileChanges }, { requestController: requestOptions.requestController ?? null }) return normalizeAppProfile(profile) }, async getRecommendationPreference(requestOptions = {}) { const preference = await requestStrict({ url: '/genealogy/app/recommendation-preference', method: 'GET' }, { requestController: requestOptions.requestController ?? null }) return normalizeRecommendationPreference(preference) }, async updateRecommendationPreference(enabled, requestOptions = {}) { if (typeof enabled !== 'boolean') throw new TypeError('个性化推荐开关必须是布尔值') const preference = await requestStrict({ url: '/genealogy/app/recommendation-preference', method: 'PUT', data: { enabled } }, { requestController: requestOptions.requestController ?? null }) return normalizeRecommendationPreference(preference) } }