package cc.mrbird.febs.firewall.service; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.firewall.dto.CountryVo; import cc.mrbird.febs.firewall.entity.FirewallCountryRule; import cc.mrbird.febs.firewall.entity.FirewallSite; import com.baomidou.mybatisplus.core.metadata.IPage; import java.util.List; /** * 防火墙规则 Service 接口 * * @author auto-generated * @date 2026-07-31 */ public interface IFirewallRuleService { // ==================== 站点管理 ==================== /** * 站点分页列表 */ IPage siteList(FirewallSite site, QueryRequest request); /** * 站点保存/更新 */ FebsResponse saveSite(FirewallSite site); /** * 站点删除 */ FebsResponse deleteSite(Long id); // ==================== 国家规则管理 ==================== /** * 国家规则分页列表 */ IPage countryRuleList(FirewallCountryRule rule, QueryRequest request); /** * 单个国家规则保存/更新(保存后自动生成Nginx配置) */ FebsResponse saveCountryRuleSingle(FirewallCountryRule rule); /** * 单个国家规则删除(删除后自动生成Nginx配置) */ FebsResponse deleteCountryRule(Long id); /** * 查询站点允许的国家列表 */ List getCountries(Long siteId); /** * 批量保存站点国家白名单规则(删旧→插新→生成配置→reload信号) */ void saveCountryRule(Long siteId, List countries); /** * 手动触发 Nginx 配置生成 & reload */ void triggerNginxReload(Long siteId); }