import api from './api'; export interface User { _id: string; email: string; username: string; avatar?: string; preferences: { defaultPlaybackSpeed: number; theme: 'light' | 'dark'; language: string; }; } export interface AuthResponse { message: string; user: User; tokens: { accessToken: string; refreshToken: string; }; } export const authService = { register: async (email: string, password: string, username: string): Promise => { const response = await api.post('/auth/register', { email, password, username, }); return response.data; }, login: async (email: string, password: string): Promise => { const response = await api.post('/auth/login', { email, password, }); return response.data; }, getMe: async (): Promise<{ user: User }> => { const response = await api.get('/auth/me'); return response.data; }, logout: async (): Promise<{ message: string }> => { const response = await api.post('/auth/logout'); return response.data; }, setTokens: (accessToken: string, refreshToken: string) => { localStorage.setItem('accessToken', accessToken); localStorage.setItem('refreshToken', refreshToken); }, getTokens: () => ({ accessToken: localStorage.getItem('accessToken'), refreshToken: localStorage.getItem('refreshToken'), }), clearTokens: () => { localStorage.removeItem('accessToken'); localStorage.removeItem('refreshToken'); }, };