/**
 * @ProjectName: 智慧评标-主观分助手
 * @Package: com.zhpb.gdyd_zhpb_zgf.repository.mysql
 * @ClassName: PromptTemplateRepository
 * @Description: 提示词模板Repository接口
 * @Author: 张志锋
 * @Date: 2025-11-03
 * @Version: 1.0
 * @Copyright: © 2025 智慧评标-主观分助手
 */
package com.zhpb.gdyd_zhpb_zgf.repository.mysql;

import com.zhpb.gdyd_zhpb_zgf.entity.mysql.PromptTemplate;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 提示词模板 Repository
 */
@Repository
public interface PromptTemplateRepository extends JpaRepository<PromptTemplate, Long> {

    /**
     * 根据模板ID查找模板
     *
     * @param templateId 模板ID
     * @return 提示词模板
     */
    PromptTemplate findByTemplateId(String templateId);

    /**
     * 根据模板类型查找启用的模板
     *
     * @param templateType 模板类型
     * @return 模板列表
     */
    @Query("SELECT t FROM PromptTemplate t WHERE t.templateType = :templateType AND t.isActive = true ORDER BY t.sortOrder ASC, t.updateTime DESC")
    List<PromptTemplate> findActiveByTemplateType(@Param("templateType") String templateType);

    /**
     * 根据模板类型查找所有模板（包括未启用的）
     *
     * @param templateType 模板类型
     * @return 模板列表
     */
    @Query("SELECT t FROM PromptTemplate t WHERE t.templateType = :templateType ORDER BY t.sortOrder ASC, t.updateTime DESC")
    List<PromptTemplate> findAllByTemplateType(@Param("templateType") String templateType);

    /**
     * 根据模板名称查找模板
     *
     * @param templateName 模板名称
     * @return 提示词模板
     */
    PromptTemplate findByTemplateName(String templateName);

    /**
     * 根据模板类型统计模板数量
     *
     * @param templateType 模板类型
     * @return 模板数量
     */
    long countByTemplateType(String templateType);
}
