import { defineStore } from 'pinia' import axios from 'axios' export const useAuthStore = defineStore('auth', { state: () => ({ token: localStorage.getItem('token') || null, user: null }), getters: { isAuthenticated: (state) => !!state.token }, actions: { async login(username, password) { try { const formData = new FormData() formData.append('username', username) formData.append('password', password) const response = await axios.post('/api/v1/auth/login', formData) this.token = response.data.access_token localStorage.setItem('token', this.token) return true } catch (error) { console.error('Login failed:', error) return false } }, async register(email, username, password, fullName) { try { await axios.post('/api/v1/auth/register', { email, username, password, full_name: fullName }) return true } catch (error) { console.error('Registration failed:', error) return false } }, logout() { this.token = null this.user = null localStorage.removeItem('token') } } })