import type {
  ApiResponse,
  AuthData,
  AuthUser,
  LoginPayload,
  RegisterPayload,
} from '@alqove/types';
import type { AlqoveClient } from '../client';

export function createAuthEndpoints(client: AlqoveClient) {
  return {
    register(payload: RegisterPayload) {
      return client.post<ApiResponse<AuthData>>('/v1/auth/register', payload);
    },

    login(payload: LoginPayload) {
      return client.post<ApiResponse<AuthData>>('/v1/auth/login', payload);
    },

    logout() {
      return client.post<{ message: string }>('/v1/auth/logout');
    },

    me() {
      return client.get<ApiResponse<AuthUser>>('/v1/auth/me');
    },

    socialRedirect(provider: 'google' | 'apple') {
      return client.get<{ url: string }>(`/v1/auth/social/${provider}/redirect`);
    },
  };
}
