Documentation
¶
Index ¶
- type Project
- func (p *Project) AddCapability(capability string) error
- func (p *Project) Architecture() shared.Architecture
- func (p *Project) Capabilities() []string
- func (p *Project) CreatedAt() time.Time
- func (p *Project) Description() string
- func (p *Project) FullPath() string
- func (p *Project) GenerationStatus() string
- func (p *Project) GetMetadata(key string) (string, bool)
- func (p *Project) ID() string
- func (p *Project) Language() shared.Language
- func (p *Project) Metadata() map[string]string
- func (p *Project) ModelUsed() string
- func (p *Project) Name() shared.ProjectName
- func (p *Project) OutputPath() string
- func (p *Project) ProjectType() shared.ProjectType
- func (p *Project) SetGenerationStatus(status string)
- func (p *Project) SetMetadata(key, value string)
- func (p *Project) SetModelUsed(model string)
- func (p *Project) UpdatedAt() time.Time
- func (p *Project) Validate() error
- type Repository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Project ¶
type Project struct {
// contains filtered or unexported fields
}
Project represents a project entity (aggregate root)
func NewProject ¶
func NewProject( id string, name shared.ProjectName, language shared.Language, projectType shared.ProjectType, architecture shared.Architecture, outputPath string, ) (*Project, error)
NewProject creates a new project entity
func NewProjectFromDescription ¶
func NewProjectFromDescription( id string, name shared.ProjectName, description string, outputPath string, ) (*Project, error)
NewProjectFromDescription creates a new project entity from a description. Language, type, and architecture are optional (the LLM will infer them).
func (*Project) AddCapability ¶
AddCapability adds a capability to the project
func (*Project) Architecture ¶
func (p *Project) Architecture() shared.Architecture
func (*Project) Capabilities ¶
func (*Project) Description ¶
func (*Project) GenerationStatus ¶
func (*Project) GetMetadata ¶
GetMetadata retrieves a metadata value by key
func (*Project) Name ¶
func (p *Project) Name() shared.ProjectName
func (*Project) OutputPath ¶
func (*Project) ProjectType ¶
func (p *Project) ProjectType() shared.ProjectType
func (*Project) SetGenerationStatus ¶
SetGenerationStatus updates the generation status
func (*Project) SetMetadata ¶
SetMetadata sets a metadata key-value pair
func (*Project) SetModelUsed ¶
SetModelUsed records which model was used for generation
type Repository ¶
type Repository interface {
// FindByID retrieves a project by its ID
FindByID(id string) (*Project, error)
// FindByName retrieves a project by its name
FindByName(name string) (*Project, error)
// FindAll retrieves all projects
FindAll() ([]*Project, error)
// Save persists a project
Save(project *Project) error
// Delete removes a project
Delete(id string) error
// Exists checks if a project exists
Exists(id string) (bool, error)
// ExistsByName checks if a project with given name exists
ExistsByName(name string) (bool, error)
}
Repository defines the interface for project persistence This is a domain interface - implementations will be in infrastructure layer
Click to show internal directories.
Click to hide internal directories.