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

import com.jeesharp.business.modules.mall.dto.MallSpuExtAttrSaveDTO;
import com.jeesharp.business.modules.mall.entity.MallSpuExtAttr;
import com.jeesharp.business.modules.mall.vo.MallSpuExtAttrQueryVO;
import com.jeesharp.framework.mybatis.core.service.BaseInterface;

import java.util.List;

/**
 * SPU 扩展属性值领域服务：按 SPU 查询与全量替换写入。
 *
 * @author jeesharp
 * @since 2026-05-15
 */
public interface MallSpuExtAttrService extends BaseInterface<MallSpuExtAttr, MallSpuExtAttrQueryVO> {

    /**
     * 查询某 SPU 下全部有效扩展属性行（按 attr_key 升序）。
     */
    List<MallSpuExtAttr> listBySpuId(String spuId);

    /**
     * 逻辑删除该 SPU 下全部扩展属性行。
     */
    void deleteBySpuId(String spuId);

    /**
     * 先删后插：用本次提交行全量替换该 SPU 的扩展属性（空列表表示清空）。
     */
    void replaceForSpu(String spuId, List<MallSpuExtAttrSaveDTO> rows);
}
