package service

import "context"

type Service interface {
	// QueryIP(ip string) (*model.IPInfo, error)
	GetWaf(ctx context.Context, regionCode, namespace, gatewayName string) (*WafService, error)
	GetWafGatewayInfo(ctx context.Context, req *GetWafGatewayInfoReq) (*WafService, error)
	CreateWaf(ctx context.Context, req *CreateWafReq) (*WafService, error)
	UpdateMode(ctx context.Context, req *UpdateModeReq) (*WafService, error)
	UpdateRule(ctx context.Context, req *RuleRequest) error
	SaveRuleCategoryToDB(ctx context.Context) error
	EnableListenerWaf(ctx context.Context, req *EnableListenerWafReq) error
	EnableGatewayWaf(ctx context.Context, req *EnableGatewayWafReq) error
	DeleteGatewayWaf(ctx context.Context, req *GatewateInfo) error
	DeleteListenerWaf(ctx context.Context, req *DeleteListenerReq) error
	EnableListenerWafs(ctx context.Context, req *EnableListenerWafsReq) error
	ListAttackLogs(ctx context.Context, req *AttackLogFilter) ([]AttackLog, string, error)
	ListRules(ctx context.Context, regionCode, namespace, gatewayName, language, name string) ([]RuleGroupResp, error)
}
