package com.gxwebsoft.app.service;

import com.gxwebsoft.app.entity.AppConfig;
import com.gxwebsoft.app.param.AppConfigParam;

import java.util.List;
import java.util.Map;

/**
 * 应用配置表 Service
 */
public interface AppConfigService {

    /**
     * 分页查询应用配置
     */
    List<AppConfig> page(AppConfigParam param);

    /**
     * 获取应用配置列表
     */
    List<AppConfig> list(AppConfigParam param);

    /**
     * 根据应用ID获取配置映射（自动解密）
     */
    Map<String, Object> getConfigsByWebsiteId(Integer websiteId);

    /**
     * 获取单个配置值
     */
    String getConfigValue(Integer websiteId, String configKey);

    /**
     * 保存配置
     */
    void saveConfig(AppConfig config);

    /**
     * 批量保存配置
     */
    void batchSaveConfig(Integer websiteId, List<AppConfig> configs);

    /**
     * 更新配置
     */
    void updateConfig(AppConfig config);

    /**
     * 删除配置
     */
    void deleteConfig(Integer configId);

    /**
     * 根据应用ID删除所有配置
     */
    void deleteByWebsiteId(Integer websiteId);
}
