import client from './client' import type { User, UserProfilePublic, UserStats, PasswordChangeData } from '@/types' export interface UpdateNicknameData { nickname: string } export const usersApi = { // Получить публичный профиль пользователя со статистикой getProfile: async (userId: number): Promise => { const response = await client.get(`/users/${userId}/profile`) return response.data }, // Получить свою статистику getMyStats: async (): Promise => { const response = await client.get('/users/me/stats') return response.data }, // Обновить никнейм updateNickname: async (data: UpdateNicknameData): Promise => { const response = await client.patch('/users/me', data) return response.data }, // Загрузить аватар uploadAvatar: async (file: File): Promise => { const formData = new FormData() formData.append('file', file) const response = await client.post('/users/me/avatar', formData, { headers: { 'Content-Type': 'multipart/form-data' }, }) return response.data }, // Сменить пароль changePassword: async (data: PasswordChangeData): Promise<{ message: string }> => { const response = await client.post<{ message: string }>('/users/me/password', data) return response.data }, // Получить аватар пользователя как blob URL getAvatarUrl: async (userId: number): Promise => { const response = await client.get(`/users/${userId}/avatar`, { responseType: 'blob', }) return URL.createObjectURL(response.data) }, }