import request from '@/utils/request'

/** 会员注册（匿名） */
export function memberRegister(data) {
  return request({
    url: '/api/member/register',
    method: 'POST',
    header: { isToken: false, repeatSubmit: false },
    data
  })
}

/**
 * 会员登录（匿名）
 * 成功响应与平台 /login 一致：根级 token、memberId（非 data.token）
 */
export function memberLogin(data) {
  return request({
    url: '/api/member/login',
    method: 'POST',
    header: { isToken: false, repeatSubmit: false },
    data
  })
}

/** 买家服务协议（注册/登录页初始化） */
export function getMemberServiceAgreement() {
  return request({
    url: '/api/member/serviceAgreement',
    method: 'GET',
    header: { isToken: false },
    silent: true
  })
}

/** 会员资料（须登录） */
export function getMemberProfile() {
  return request({
    url: '/api/member/profile',
    method: 'GET'
  })
}

/** 更新个人资料 */
export function updateMemberProfile(data) {
  return request({
    url: '/api/member/profile',
    method: 'PUT',
    data
  })
}

/** 修改密码 */
export function changeMemberPassword(data) {
  return request({
    url: '/api/member/password',
    method: 'PUT',
    data,
    header: { repeatSubmit: false }
  })
}

/** 收货地址列表 */
export function getAddressList() {
  return request({
    url: '/api/member/address/list',
    method: 'GET'
  })
}

/** 新增收货地址 */
export function addAddress(data) {
  return request({
    url: '/api/member/address',
    method: 'POST',
    data
  })
}

/** 修改收货地址 */
export function updateAddress(data) {
  return request({
    url: '/api/member/address',
    method: 'PUT',
    data
  })
}

/** 删除收货地址 */
export function deleteAddress(addressId) {
  return request({
    url: `/api/member/address/${addressId}`,
    method: 'DELETE'
  })
}

/** 设为默认地址 */
export function setDefaultAddress(addressId) {
  return request({
    url: `/api/member/address/${addressId}/default`,
    method: 'PUT'
  })
}

/**
 * 我的店铺关注列表（须登录）
 * @returns {Promise<{code,msg,rows,total}>}
 */
export function getShopFollowList(params) {
  return request({
    url: '/api/member/shop-follows',
    method: 'GET',
    params
  })
}
