package message

import "time"

const (
	ChannelAgentTaskSummaryStateWorkingInChannel = "working_in_channel"
	ChannelAgentTaskSummaryStateBusyElsewhere    = "busy_elsewhere"
	ChannelAgentTaskSummaryStateIdle             = "idle"

	ChannelAgentTaskSummaryRoleActiveTarget = "active_target"
	ChannelAgentTaskSummaryRoleAssignee     = "assignee"
)

// ChannelAgentCurrentTaskSummary is an authorized current-channel task summary
// suitable for lightweight channel member list display.
type ChannelAgentCurrentTaskSummary struct {
	TaskID         string
	ChannelID      string
	TaskNumber     int64
	Title          string
	Status         string
	Role           string
	Route          string
	LastActivityAt *time.Time
}

// ChannelAgentTaskSummary is one visible channel agent's bounded current work
// state. CurrentTask is only set for authorized current-channel task details.
type ChannelAgentTaskSummary struct {
	AgentID     string
	State       string
	CurrentTask *ChannelAgentCurrentTaskSummary
	MoreCount   int
	UpdatedAt   time.Time
}
