package gitea

import (
	"github.com/tidbcloud/AgentTeam/internal/extension"
	"github.com/tidbcloud/AgentTeam/internal/extension/registry"
	"github.com/tidbcloud/AgentTeam/internal/extension/runner"
	"github.com/tidbcloud/AgentTeam/internal/service/prwatch"
)

// Extension composes the Gitea pull-request-watch Builtin with its product
// Distribution.
func Extension(service prwatch.Invoker) extension.Extension {
	return extension.Extension{
		Definition: Definition(),
		Implementation: runner.Implementation{
			Executor:         NewExecutor(service),
			Revision:         Revision,
			ConnectionPolicy: registry.ConnectionRequired,
		},
		Distribution: extension.Distribution{
			AppID:          "app_gitea",
			AppSlug:        "gitea",
			DefaultName:    Provider,
			DefaultEnabled: true,
			IconURL:        "/app-icons/gitea.svg",
		},
	}
}
