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

import com.jeesharp.business.modules.setting.entity.CmsSiteIcon;
import com.jeesharp.business.modules.setting.vo.SiteIconQueryVO;
import com.jeesharp.framework.mybatis.core.service.BaseInterface;

import java.util.List;

/**
 * 站点图标领域服务接口，定义持久化与按分类查询等能力。
 *
 * @author jeesharp
 * @since 2026-05-15
 */
public interface SiteIconService extends BaseInterface<CmsSiteIcon, SiteIconQueryVO> {

    /**
     * 查询某分类下启用中的图标列表（壳层等使用）。
     *
     * @param category 分类存储值，如 HOME
     * @return 按排序、创建时间倒序
     */
    List<CmsSiteIcon> listEnabledByCategory(String category);

    /**
     * 查询某分类下启用中且图标编号以前缀开头的列表（壳层旅游入口等）。
     *
     * @param category 分类存储值，如 COMMON
     * @param iconCodePrefix 编号前缀，如 travel_entrance_
     * @return 按排序、创建时间倒序
     */
    List<CmsSiteIcon> listEnabledByCategoryAndIconCodePrefix(String category, String iconCodePrefix);

    /**
     * 统计同编号下是否存在其它记录（用于唯一校验）。
     *
     * @param iconCode   图标编号
     * @param excludeId  排除的主键，新增时传 null
     * @return 记录数
     */
    long countByIconCodeExcludeId(String iconCode, String excludeId);
}
