package engine

import (
	"context"

	"github.com/tidbcloud/infra-provider/infra-inspector/api"
	"github.com/tidbcloud/infra-provider/infra-inspector/pkg/inspect/lister"
	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)

type alwaysDenyEngine struct {
}

func NewAlwaysDenyEngine() Engine {
	return &alwaysDenyEngine{}
}

func (e *alwaysDenyEngine) Validate(ctx context.Context, lister lister.ResourceLister, resource *unstructured.Unstructured) (*api.Violation, error) {
	return &api.Violation{
		Resource: GetResourceFromUnstructured(resource),
		ViolatedRules: []api.ViolatedRule{
			{
				Name:    "AlwaysDeny",
				Level:   api.LevelInfo,
				Message: "",
			},
		},
	}, nil
}
