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

import com.jeesharp.business.modules.mall.entity.MallCategorySpec;
import com.jeesharp.business.modules.mall.vo.MallCategorySpecQueryVO;
import com.jeesharp.business.modules.mall.vo.MallSpecOptionVO;
import com.jeesharp.framework.mybatis.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 类目可用规格关联表 Mapper；自定义联查见同包 {@code xml/MallCategorySpecMapper.xml}。
 *
 * @author jeesharp
 * @since 2026-05-15
 */
@Mapper
public interface MallCategorySpecMapper extends BaseMapper<MallCategorySpec, MallCategorySpecQueryVO> {

    /**
     * 某类目下已启用、未删除规格的可选项（含排序）。
     */
    List<MallSpecOptionVO> selectSpecOptionsByCategoryId(
        @Param("tenantCode") String tenantCode,
        @Param("categoryId") String categoryId);

    /**
     * 绑定同一发布模板的所有类目，其可用规格的并集（去重），仅含启用规格。
     */
    List<MallSpecOptionVO> selectSpecOptionsByTemplateId(
        @Param("tenantCode") String tenantCode,
        @Param("templateId") String templateId);
}
