package model

type ResourceCohort struct {
	CreatedAtAndUpdatedAt

	ID            ID                    `json:"id,omitempty" db:"id"`
	Name          string                `json:"name" db:"name"`
	Summary       string                `json:"summary" db:"summary"`
	Resourcepools []*ResourceCohortPool `json:"resourcepools,omitempty" db:"-"`
}

type ResourceCohortPool struct {
	ID             ID                           `json:"id,omitempty" db:"id"`
	Name           string                       `json:"name" db:"name"`
	BorrowedPolicy ResourcePoolBorrowedPolicies `json:"borrowedPolicy" db:"borrowed_policy"`
}

func (v *ResourceCohortPool) EffectivePolicy(borrowedCPUPercentage float32) *ResourcePoolBorrowedPolicy {
	if len(v.BorrowedPolicy) == 0 {
		return nil
	}
	return v.BorrowedPolicy.EffectivePolicy(borrowedCPUPercentage)
}
