Documentation
¶
Index ¶
- type CreateFeatureInput
- type FeatureService
- func (s *FeatureService) CreateFeature(ctx context.Context, input CreateFeatureInput) (*entities.Feature, error)
- func (s *FeatureService) GetFeature(ctx context.Context, id string) (*entities.Feature, error)
- func (s *FeatureService) ListFeatures(ctx context.Context, filter map[string]any) ([]entities.Feature, error)
- func (s *FeatureService) TransitionFeature(ctx context.Context, featureID string, targetStatus entities.FeatureStatus, ...) (*entities.Feature, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CreateFeatureInput ¶
type CreateFeatureInput struct {
Name string
Description string
Mission string
KittySpec string
CreatedBy string
}
CreateFeatureInput represents the input for creating a feature.
type FeatureService ¶
type FeatureService struct {
// contains filtered or unexported fields
}
FeatureService handles feature-related use cases. Following Clean Architecture + DDD + CQRS principles.
Application Layer contains: - Use cases (orchestration logic) - Input/Output DTOs - Transaction boundaries - Cross-cutting concerns (logging, observability)
func NewFeatureService ¶
func NewFeatureService( featureRepo ports.FeatureRepositoryPort, wpRepo ports.WorkPackageRepositoryPort, cache outbound.CacheInvalidationPort, eventBus outbound.EventBusPort, audit ports.AuditPort, observability outbound.ObservabilityPort, ) *FeatureService
NewFeatureService creates a new FeatureService. Following Dependency Injection pattern.
func (*FeatureService) CreateFeature ¶
func (s *FeatureService) CreateFeature(ctx context.Context, input CreateFeatureInput) (*entities.Feature, error)
CreateFeature creates a new feature. Following TDD and BDD patterns - use case returns Result type.
func (*FeatureService) GetFeature ¶
GetFeature returns a single feature by ID.
func (*FeatureService) ListFeatures ¶
func (s *FeatureService) ListFeatures(ctx context.Context, filter map[string]any) ([]entities.Feature, error)
ListFeatures returns all features with optional filtering. Following CQRS - read model query.
func (*FeatureService) TransitionFeature ¶
func (s *FeatureService) TransitionFeature(ctx context.Context, featureID string, targetStatus entities.FeatureStatus, actor string) (*entities.Feature, error)
TransitionFeature transitions a feature to a new status. Following State Machine pattern.