package domain import "time" type Agent struct { ID string `db:"id" json:"id"` TeamID string `db:"team_id" json:"teamId"` Name string `db:"name" json:"name"` SystemPrompt string `db:"system_prompt" json:"systemPrompt"` DefaultProviderID string `db:"def_provider_id" json:"defaultProviderId"` DefaultModelID string `db:"def_model_id" json:"defaultModelId"` ToolsPolicy string `db:"tools_policy" json:"toolsPolicy"` SubAgents bool `db:"sub_agents" json:"subAgents"` LoopStrategy string `db:"loop_strategy" json:"loopStrategy"` MaxIterations string `db:"max_iterations" json:"maxIterations"` StoppingCriteria string `db:"stopping_criteria" json:"stoppingCriteria"` DateCreated time.Time `db:"_date_created" json:"_date_created"` DateUpdated *time.Time `db:"_date_updated" json:"_date_updated"` VersionId string `db:"_version" json:"_version"` } type AgentRepository interface { ListAgents(userID string, teamID string) ([]*Agent, error) GetAgent(userID string, teamID string, id string) (*Agent, error) CreateAgent(userID string, agent *Agent) (*Agent, error) UpdateAgent(userID string, agent *Agent) (*Agent, error) DeleteAgent(userID string, teamID string, id string) error }