Documentation
¶
Index ¶
- type CapabilityService
- func (s *CapabilityService) CreateCapability(ctx context.Context, input CreateCapabilityInput) (*capabilitydom.Capability, error)
- func (s *CapabilityService) DeleteCapability(ctx context.Context, input DeleteCapabilityInput) error
- func (s *CapabilityService) GetCapabilitiesUsageStatsBatch(ctx context.Context, tenantIDStr string, capabilityIDs []string) (map[string]*CapabilityUsageStatsOutput, error)
- func (s *CapabilityService) GetCapability(ctx context.Context, id string) (*capabilitydom.Capability, error)
- func (s *CapabilityService) GetCapabilityUsageStats(ctx context.Context, tenantIDStr string, capabilityID string) (*CapabilityUsageStatsOutput, error)
- func (s *CapabilityService) GetCategories(ctx context.Context) ([]string, error)
- func (s *CapabilityService) ListAllCapabilities(ctx context.Context, tenantID string) ([]*capabilitydom.Capability, error)
- func (s *CapabilityService) ListCapabilities(ctx context.Context, input ListCapabilitiesInput) (pagination.Result[*capabilitydom.Capability], error)
- func (s *CapabilityService) ListCapabilitiesByCategory(ctx context.Context, tenantID string, category string) ([]*capabilitydom.Capability, error)
- func (s *CapabilityService) ListCapabilitiesByNames(ctx context.Context, tenantID string, names []string) ([]*capabilitydom.Capability, error)
- func (s *CapabilityService) UpdateCapability(ctx context.Context, input UpdateCapabilityInput) (*capabilitydom.Capability, error)
- type CapabilityUsageStatsOutput
- type CreateCapabilityInput
- type DeleteCapabilityInput
- type ListCapabilitiesInput
- type UpdateCapabilityInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CapabilityService ¶
type CapabilityService struct {
// contains filtered or unexported fields
}
CapabilityService handles capability business operations.
func NewCapabilityService ¶
func NewCapabilityService( repo capabilitydom.Repository, auditService *auditapp.AuditService, log *logger.Logger, ) *CapabilityService
NewCapabilityService creates a new CapabilityService.
func (*CapabilityService) CreateCapability ¶
func (s *CapabilityService) CreateCapability(ctx context.Context, input CreateCapabilityInput) (*capabilitydom.Capability, error)
CreateCapability creates a new tenant custom capability.
func (*CapabilityService) DeleteCapability ¶
func (s *CapabilityService) DeleteCapability(ctx context.Context, input DeleteCapabilityInput) error
DeleteCapability deletes a tenant custom capability. If capability is in use and Force is false, returns ErrConflict with usage info.
func (*CapabilityService) GetCapabilitiesUsageStatsBatch ¶
func (s *CapabilityService) GetCapabilitiesUsageStatsBatch(ctx context.Context, tenantIDStr string, capabilityIDs []string) (map[string]*CapabilityUsageStatsOutput, error)
GetCapabilitiesUsageStatsBatch returns usage statistics for multiple capabilities. Security: Filters out capabilities the tenant doesn't have access to.
func (*CapabilityService) GetCapability ¶
func (s *CapabilityService) GetCapability(ctx context.Context, id string) (*capabilitydom.Capability, error)
GetCapability returns a capability by ID.
func (*CapabilityService) GetCapabilityUsageStats ¶
func (s *CapabilityService) GetCapabilityUsageStats(ctx context.Context, tenantIDStr string, capabilityID string) (*CapabilityUsageStatsOutput, error)
GetCapabilityUsageStats returns usage statistics for a capability. Security: Validates tenant has access to view the capability (platform or owned custom).
func (*CapabilityService) GetCategories ¶
func (s *CapabilityService) GetCategories(ctx context.Context) ([]string, error)
GetCategories returns all unique capability categories.
func (*CapabilityService) ListAllCapabilities ¶
func (s *CapabilityService) ListAllCapabilities(ctx context.Context, tenantID string) ([]*capabilitydom.Capability, error)
ListAllCapabilities returns all capabilities for a tenant context (for dropdowns).
func (*CapabilityService) ListCapabilities ¶
func (s *CapabilityService) ListCapabilities(ctx context.Context, input ListCapabilitiesInput) (pagination.Result[*capabilitydom.Capability], error)
ListCapabilities returns capabilities matching the filter. Always includes platform (builtin) capabilities. If TenantID is provided, also includes that tenant's custom capabilities.
func (*CapabilityService) ListCapabilitiesByCategory ¶
func (s *CapabilityService) ListCapabilitiesByCategory(ctx context.Context, tenantID string, category string) ([]*capabilitydom.Capability, error)
ListCapabilitiesByCategory returns all capabilities in a category.
func (*CapabilityService) ListCapabilitiesByNames ¶
func (s *CapabilityService) ListCapabilitiesByNames(ctx context.Context, tenantID string, names []string) ([]*capabilitydom.Capability, error)
ListCapabilitiesByNames returns capabilities by their names.
func (*CapabilityService) UpdateCapability ¶
func (s *CapabilityService) UpdateCapability(ctx context.Context, input UpdateCapabilityInput) (*capabilitydom.Capability, error)
UpdateCapability updates an existing tenant custom capability.
type CapabilityUsageStatsOutput ¶
type CapabilityUsageStatsOutput struct {
ToolCount int `json:"tool_count"`
AgentCount int `json:"agent_count"`
ToolNames []string `json:"tool_names,omitempty"`
AgentNames []string `json:"agent_names,omitempty"`
}
CapabilityUsageStatsOutput represents usage statistics for a capability.
type CreateCapabilityInput ¶
type CreateCapabilityInput struct {
TenantID string `json:"-"`
CreatedBy string `json:"-"`
Name string `json:"name" validate:"required,min=2,max=50"`
DisplayName string `json:"display_name" validate:"required,max=100"`
Description string `json:"description" validate:"max=500"`
Icon string `json:"icon" validate:"max=50"`
Color string `json:"color" validate:"max=20"`
Category string `json:"category" validate:"max=50"`
// Audit context (set by handler)
AuditContext auditapp.AuditContext `json:"-"`
}
CreateCapabilityInput represents the input for creating a tenant custom capability.
type DeleteCapabilityInput ¶
type DeleteCapabilityInput struct {
TenantID string
CapabilityID string
Force bool // Force delete even if capability is in use
// Audit context (set by handler)
AuditContext auditapp.AuditContext
}
DeleteCapabilityInput represents the input for deleting a capability.
type ListCapabilitiesInput ¶
type ListCapabilitiesInput struct {
TenantID string
IsBuiltin *bool
Category *string
Search string
Page int
PerPage int
}
ListCapabilitiesInput represents the input for listing capabilities.
type UpdateCapabilityInput ¶
type UpdateCapabilityInput struct {
TenantID string `json:"-"`
ID string `json:"-"`
DisplayName string `json:"display_name" validate:"required,max=100"`
Description string `json:"description" validate:"max=500"`
Icon string `json:"icon" validate:"max=50"`
Color string `json:"color" validate:"max=20"`
Category string `json:"category" validate:"max=50"`
// Audit context (set by handler)
AuditContext auditapp.AuditContext `json:"-"`
}
UpdateCapabilityInput represents the input for updating a capability.