import {apiClient} from './client'; const AUTH_ENDPOINTS = { login: process.env.NEXT_PUBLIC_AUTH_LOGIN_PATH ?? '/api/auth/login', register: process.env.NEXT_PUBLIC_AUTH_REGISTER_PATH ?? '/api/auth/register', logout: process.env.NEXT_PUBLIC_AUTH_LOGOUT_PATH ?? '/api/auth/logout', user: process.env.NEXT_PUBLIC_AUTH_USER_PATH ?? '/api/auth/user', }; export type AuthUser = { id: number; name?: string; username?: string; first_name?: string; last_name?: string; email: string; phone?: string; }; export type LoginPayload = { email: string; password: string; remember?: boolean; }; export type RegisterPayload = { username: string; first_name: string; last_name: string; email: string; phone: string; password: string; password_confirmation: string; }; export const authClient = { async login(payload: LoginPayload) { await apiClient.ensureCsrfCookie(); await apiClient.post(AUTH_ENDPOINTS.login, payload, { skipAuthRedirect: true, }); return apiClient.get(AUTH_ENDPOINTS.user, { skipAuthRedirect: true, }); }, async register(payload: RegisterPayload) { await apiClient.ensureCsrfCookie(); await apiClient.post(AUTH_ENDPOINTS.register, payload, { skipAuthRedirect: true }); return apiClient.get(AUTH_ENDPOINTS.user, { skipAuthRedirect: true }); }, async logout() { await apiClient.ensureCsrfCookie(); await apiClient.post(AUTH_ENDPOINTS.logout); }, async me() { return apiClient.get(AUTH_ENDPOINTS.user, { skipAuthRedirect: true, }); } };