package trigger

import (
	"context"

	"github.com/tidbcloud/AgentTeam/internal/trigger"
)

// TriggerService is the narrow trigger management port used by browser routes.
type TriggerService interface {
	ListForOwnerWithFilter(ctx context.Context, ownerUserID string, workspaceID string, filter trigger.ListFilter) ([]trigger.TriggerView, error)
	ValidateForOwner(ctx context.Context, ownerUserID string, workspaceID string, input trigger.UpsertInput, existingTriggerID string) (trigger.ValidateResult, error)
	CreateForOwner(ctx context.Context, ownerUserID string, workspaceID string, input trigger.UpsertInput) (trigger.TriggerView, error)
	GetForOwner(ctx context.Context, ownerUserID string, workspaceID string, triggerID string) (trigger.TriggerView, error)
	UpdateForOwner(ctx context.Context, ownerUserID string, workspaceID string, triggerID string, input trigger.UpsertInput) (trigger.TriggerView, error)
	PauseForOwner(ctx context.Context, ownerUserID string, workspaceID string, triggerID string) (trigger.TriggerView, error)
	ResumeForOwner(ctx context.Context, ownerUserID string, workspaceID string, triggerID string) (trigger.TriggerView, error)
	DeleteForOwner(ctx context.Context, ownerUserID string, workspaceID string, triggerID string) error
	ListRunsForOwner(ctx context.Context, ownerUserID string, workspaceID string, triggerID string, limit int) ([]trigger.RunView, error)
}
