import request from '@/utils/request'

/** 购物车列表（按店分组，须登录） */
export function getCartList() {
  return request({
    url: '/api/cart',
    method: 'GET'
  })
}

/** 加购（商品详情调用） */
export function addCartItem(data) {
  return request({
    url: '/api/cart/items',
    method: 'POST',
    data,
    header: { repeatSubmit: false }
  })
}

/** 修改数量 */
export function updateCartQuantity(cartItemId, quantity) {
  return request({
    url: `/api/cart/items/${cartItemId}/quantity`,
    method: 'PUT',
    data: { quantity }
  })
}

/** 批量更新勾选 */
export function updateCartChecked(items) {
  return request({
    url: '/api/cart/items/checked',
    method: 'PUT',
    data: { items }
  })
}

/** 移出单行 */
export function removeCartItem(cartItemId) {
  return request({
    url: `/api/cart/items/${cartItemId}`,
    method: 'DELETE'
  })
}

/** 批量移出 */
export function removeCartItems(cartItemIds) {
  return request({
    url: '/api/cart/items',
    method: 'DELETE',
    data: { cartItemIds }
  })
}

/** 清理全部失效行 */
export function cleanInvalidCart() {
  return request({
    url: '/api/cart/invalid',
    method: 'DELETE'
  })
}

/** 去结算预校验（同店） */
export function prepareCartCheckout(cartItemIds) {
  return request({
    url: '/api/cart/checkout/prepare',
    method: 'POST',
    data: { cartItemIds },
    header: { repeatSubmit: false }
  })
}
