package com.storlead.knowledge.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.storlead.framework.mybatis.service.MyBaseService;
import com.storlead.knowledge.entity.ConfigVersionEntity;
import com.storlead.knowledge.pojo.dto.ConfigVersionDTO;
import com.storlead.knowledge.pojo.vo.ConfigVersionVO;

/**
 * <p>
 * 配置版本表 服务类
 * </p>
 *
 * @author storlead
 * @since 2026-06-09
 */
public interface ConfigVersionService extends MyBaseService<ConfigVersionEntity> {

    /**
     * 根据应用编码和键值查询配置版本
     *
     * @param appCode 应用编码
     * @param key 键值
     * @return 配置版本实体
     */
    ConfigVersionEntity getByAppCodeAndKey(String appCode, String key);

    /**
     * 分页查询配置版本（返回VO）
     *
     * @param pageIndex 页码
     * @param pageSize 每页大小
     * @param appCode 应用编码（可选）
     * @param keyword 关键词（可选）
     * @return 分页结果
     */
    IPage<ConfigVersionVO> pageVO(Integer pageIndex, Integer pageSize, String appCode, String keyword);

    /**
     * 保存配置版本
     *
     * @param dto 配置版本DTO
     * @return 是否成功
     */
    boolean saveByDTO(ConfigVersionDTO dto);

    /**
     * 更新配置版本
     *
     * @param dto 配置版本DTO
     * @return 是否成功
     */
    boolean updateByDTO(ConfigVersionDTO dto);
}