Documentation
¶
Index ¶
- Variables
- type CreateProjectRequest
- type Project
- type ProjectRepo
- func (r *ProjectRepo) Create(ctx context.Context, req *CreateProjectRequest) (*Project, error)
- func (r *ProjectRepo) Delete(ctx context.Context, id uuid.UUID) error
- func (r *ProjectRepo) GetByID(ctx context.Context, id uuid.UUID) (*Project, error)
- func (r *ProjectRepo) GetByName(ctx context.Context, name string) (*Project, error)
- func (r *ProjectRepo) List(ctx context.Context) ([]*Project, error)
- func (r *ProjectRepo) Update(ctx context.Context, id uuid.UUID, req *UpdateProjectRequest) (*Project, error)
- type ProjectService
- func (s *ProjectService) Create(ctx context.Context, req *CreateProjectRequest) (*Project, error)
- func (s *ProjectService) Delete(ctx context.Context, id uuid.UUID) error
- func (s *ProjectService) GetByID(ctx context.Context, id uuid.UUID) (*Project, error)
- func (s *ProjectService) GetByName(ctx context.Context, name string) (*Project, error)
- func (s *ProjectService) List(ctx context.Context) ([]*Project, error)
- func (s *ProjectService) Update(ctx context.Context, id uuid.UUID, req *UpdateProjectRequest) (*Project, error)
- type UpdateProjectRequest
Constants ¶
This section is empty.
Variables ¶
var ErrProjectAlreadyExists = errors.New("project already exists")
var ErrProjectNotFound = errors.New("project not found")
Functions ¶
This section is empty.
Types ¶
type CreateProjectRequest ¶
type CreateProjectRequest struct {
Name string `json:"name" validate:"required,min=1,max=255"`
DefaultKey *string `json:"default_key,omitempty"`
}
CreateProjectRequest captures payload for creating a project
type Project ¶
type Project struct {
ID uuid.UUID `json:"id" db:"id"`
Name string `json:"name" db:"name"`
DefaultKey *string `json:"default_key,omitempty" db:"default_key"`
CreatedAt time.Time `json:"created_at" db:"created_at"`
UpdatedAt time.Time `json:"updated_at" db:"updated_at"`
}
Project represents a workspace or collection an agent can belong to
type ProjectRepo ¶
type ProjectRepo struct {
// contains filtered or unexported fields
}
ProjectRepo handles database operations for projects
func NewProjectRepo ¶
func NewProjectRepo(db *sqlx.DB) *ProjectRepo
NewProjectRepo creates a new project repository
func (*ProjectRepo) Create ¶
func (r *ProjectRepo) Create(ctx context.Context, req *CreateProjectRequest) (*Project, error)
Create creates a new project
func (*ProjectRepo) List ¶
func (r *ProjectRepo) List(ctx context.Context) ([]*Project, error)
List retrieves all projects ordered by creation date
func (*ProjectRepo) Update ¶
func (r *ProjectRepo) Update(ctx context.Context, id uuid.UUID, req *UpdateProjectRequest) (*Project, error)
Update updates project fields
type ProjectService ¶
type ProjectService struct {
// contains filtered or unexported fields
}
ProjectService contains business logic for projects
func NewProjectService ¶
func NewProjectService(repo *ProjectRepo) *ProjectService
NewProjectService constructs a new ProjectService
func (*ProjectService) Create ¶
func (s *ProjectService) Create(ctx context.Context, req *CreateProjectRequest) (*Project, error)
Create registers a new project ensuring name uniqueness
func (*ProjectService) List ¶
func (s *ProjectService) List(ctx context.Context) ([]*Project, error)
List returns all projects ordered by creation time
func (*ProjectService) Update ¶
func (s *ProjectService) Update(ctx context.Context, id uuid.UUID, req *UpdateProjectRequest) (*Project, error)
Update modifies mutable project fields
type UpdateProjectRequest ¶
type UpdateProjectRequest struct {
Name *string `json:"name,omitempty" validate:"omitempty,min=1,max=255"`
DefaultKey *string `json:"default_key,omitempty"`
}
UpdateProjectRequest captures payload for updating a project