businessunit

package
v0.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2026 License: GPL-3.0 Imports: 5 Imported by: 0

Documentation

Overview

Package businessunit provides domain models for business unit management.

Index

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) ID

func (b *BusinessUnit) ID() shared.ID

Getters

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) SetTags

func (b *BusinessUnit) SetTags(tags []string)

SetTags sets tags.

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 Filter

type Filter struct {
	TenantID *shared.ID
	Search   *string
}

Filter defines listing criteria.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL