package com.jeesharp.business.modules.mall.service;

import com.jeesharp.business.modules.mall.entity.MallCartItem;
import com.jeesharp.business.modules.mall.vo.MallCartItemPortalRowVO;
import com.jeesharp.business.modules.mall.vo.MallCartItemQueryVO;
import com.jeesharp.framework.mybatis.core.service.BaseInterface;

import java.util.List;

/**
 * 购物车行领域服务接口。
 *
 * @author jeesharp
 * @since 2026-05-07
 */
public interface MallCartItemService extends BaseInterface<MallCartItem, MallCartItemQueryVO> {

    void createCartItem(MallCartItem entity);

    void updateCartItem(MallCartItem entity);
/**
     * 按会员与 SKU 查询未删除的购物车行（同一 SKU 至多一行）。
     */
    MallCartItem findActiveByMemberAndSku(String memberId, String skuId);

    /**
     * C 端购物车联查列表。
     */
    List<MallCartItemPortalRowVO> listPortalRowsByMemberId(String memberId);

    /**
     * 将会员下所有未删除购物车行的选中状态批量更新。
     */
    void updateSelectAllByMember(String memberId, Integer selected);

    /**
     * 按会员主键与购物车行主键批量逻辑删除（须全部属于该会员）。
     */
    void deleteByMemberAndItemIds(String memberId, List<String> itemIds);
}
