import { request } from '@/utils/request'
import type { Address, AddressSaveReq } from '@/types/address'

/**
 * 获取当前用户的所有地址
 * GET /api/address（需登录）
 */
export function getAddressListApi() {
  return request<Address[]>({
    url: '/api/address',
    method: 'GET'
  })
}

/**
 * 获取默认地址
 * GET /api/address/default（需登录）
 */
export function getDefaultAddressApi() {
  return request<Address>({
    url: '/api/address/default',
    method: 'GET'
  })
}

/**
 * 获取地址详情
 * GET /api/address/{id}（需登录）
 */
export function getAddressDetailApi(id: number) {
  return request<Address>({
    url: `/api/address/${id}`,
    method: 'GET'
  })
}

/**
 * 新增地址
 * POST /api/address（需登录）
 */
export function createAddressApi(data: AddressSaveReq) {
  return request<number>({
    url: '/api/address',
    method: 'POST',
    data
  })
}

/**
 * 更新地址
 * PUT /api/address（需登录）
 */
export function updateAddressApi(data: AddressSaveReq) {
  return request<void>({
    url: '/api/address',
    method: 'PUT',
    data
  })
}

/**
 * 删除地址
 * DELETE /api/address/{id}（需登录）
 */
export function deleteAddressApi(id: number) {
  return request<void>({
    url: `/api/address/${id}`,
    method: 'DELETE'
  })
}

/**
 * 设为默认地址
 * PUT /api/address/{id}/default（需登录）
 */
export function setDefaultAddressApi(id: number) {
  return request<void>({
    url: `/api/address/${id}/default`,
    method: 'PUT'
  })
}
