Documentation
¶
Overview ¶
Package businessunit provides domain models for business unit management.
Index ¶
- Variables
- type BusinessUnit
- func (b *BusinessUnit) AssetCount() int
- func (b *BusinessUnit) AvgRiskScore() float64
- func (b *BusinessUnit) CreatedAt() time.Time
- func (b *BusinessUnit) CriticalFindingCount() int
- func (b *BusinessUnit) Description() string
- func (b *BusinessUnit) FindingCount() int
- func (b *BusinessUnit) ID() shared.ID
- func (b *BusinessUnit) Name() string
- func (b *BusinessUnit) OwnerEmail() string
- func (b *BusinessUnit) OwnerName() string
- func (b *BusinessUnit) SetTags(tags []string)
- func (b *BusinessUnit) Tags() []string
- func (b *BusinessUnit) TenantID() shared.ID
- func (b *BusinessUnit) Update(name, description, ownerName, ownerEmail string)
- func (b *BusinessUnit) UpdateStats(assetCount, findingCount, criticalCount int, avgRisk float64)
- func (b *BusinessUnit) UpdatedAt() time.Time
- type Filter
- type Repository
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNotFound = fmt.Errorf("%w: business unit not found", shared.ErrNotFound)
Errors
Functions ¶
This section is empty.
Types ¶
type BusinessUnit ¶
type BusinessUnit struct {
// contains filtered or unexported fields
}
BusinessUnit represents an organizational unit for risk aggregation.
func NewBusinessUnit ¶
func NewBusinessUnit(tenantID shared.ID, name string) (*BusinessUnit, error)
NewBusinessUnit creates a new business unit.
func ReconstituteBusinessUnit ¶
func ReconstituteBusinessUnit( id, tenantID shared.ID, name, description, ownerName, ownerEmail string, assetCount, findingCount int, avgRiskScore float64, criticalFindingCount int, tags []string, createdAt, updatedAt time.Time, ) *BusinessUnit
ReconstituteBusinessUnit creates from persisted data.
func (*BusinessUnit) AssetCount ¶
func (b *BusinessUnit) AssetCount() int
func (*BusinessUnit) AvgRiskScore ¶
func (b *BusinessUnit) AvgRiskScore() float64
func (*BusinessUnit) CreatedAt ¶
func (b *BusinessUnit) CreatedAt() time.Time
func (*BusinessUnit) CriticalFindingCount ¶
func (b *BusinessUnit) CriticalFindingCount() int
func (*BusinessUnit) Description ¶
func (b *BusinessUnit) Description() string
func (*BusinessUnit) FindingCount ¶
func (b *BusinessUnit) FindingCount() int
func (*BusinessUnit) Name ¶
func (b *BusinessUnit) Name() string
func (*BusinessUnit) OwnerEmail ¶
func (b *BusinessUnit) OwnerEmail() string
func (*BusinessUnit) OwnerName ¶
func (b *BusinessUnit) OwnerName() string
func (*BusinessUnit) Tags ¶
func (b *BusinessUnit) Tags() []string
func (*BusinessUnit) TenantID ¶
func (b *BusinessUnit) TenantID() shared.ID
func (*BusinessUnit) Update ¶
func (b *BusinessUnit) Update(name, description, ownerName, ownerEmail string)
Update sets mutable fields.
func (*BusinessUnit) UpdateStats ¶
func (b *BusinessUnit) UpdateStats(assetCount, findingCount, criticalCount int, avgRisk float64)
UpdateStats updates cached statistics.
func (*BusinessUnit) UpdatedAt ¶
func (b *BusinessUnit) UpdatedAt() time.Time
type Repository ¶
type Repository interface {
Create(ctx context.Context, bu *BusinessUnit) error
GetByID(ctx context.Context, tenantID, id shared.ID) (*BusinessUnit, error)
Update(ctx context.Context, bu *BusinessUnit) error
Delete(ctx context.Context, tenantID, id shared.ID) error
List(ctx context.Context, filter Filter, page pagination.Pagination) (pagination.Result[*BusinessUnit], error)
// Asset linking
AddAsset(ctx context.Context, tenantID, buID, assetID shared.ID) error
RemoveAsset(ctx context.Context, tenantID, buID, assetID shared.ID) error
ListAssetIDs(ctx context.Context, tenantID, buID shared.ID) ([]shared.ID, error)
}
Repository defines persistence.
Click to show internal directories.
Click to hide internal directories.