package agent

import (
	"context"

	storeagent "github.com/tidbcloud/AgentTeam/internal/store/agent"
)

type AgentTeamStore interface {
	ListTeamsForAgent(context.Context, storeagent.AuthenticatedAgent, AgentTeamListOptions) (AgentTeamListPage, error)
	GetTeamForAgent(context.Context, storeagent.AuthenticatedAgent, string) (AgentTeamDetail, error)
}

type AgentTeamListOptions struct {
	Query        string
	Limit        int
	CursorName   string
	CursorHandle string
	CursorTeamID string
}

type AgentTeamListPage struct {
	Teams   []AgentTeamSummary
	HasMore bool
}

type AgentTeamSummary struct {
	TeamID      string
	Handle      string
	DisplayName string
	Description string
	Role        string
}

type AgentTeamDetail struct {
	TeamID      string
	Handle      string
	DisplayName string
	Description string
	Members     []AgentTeamMember
}

type AgentTeamMember struct {
	TeamMemberID      string
	AgentID           string
	DisplayName       string
	RoleLabel         string
	RoleOverlayPrompt string
	WakeOnTeamMention bool
}
