Flavor
extends AbstractBillableCloudModel
in package
Uses
HasFactory, Notifiable, PowerJoins, SoftDeletes
Table of Contents
- table = "cloud_os_compute__flavors"
- Table name, as constant, used to avoid table name duplication across the source code base.
- $activityLogName : string
- $billable_directly : bool
- $billable_hourly : bool
- $billable_hourly_cost : float
- $billable_monthly : bool
- $billable_monthly_cost : float
- $billable_multiplier : float
- $billable_one_time : bool
- $billable_one_time_cost : float
- $billable_per_usage : bool
- $billable_per_usage_cost : float
- $billable_upon_relation : bool
- $billable_upon_relation_class : string
- $billable_upon_relation_fk : string
- $deleted_at : Carbon
- $error_at : Carbon
- $id : int
- $is_billable : bool
- $openStackActivityLogName : string
- $price_list_expires_at : int
- $attributes : array<string|int, mixed>
- Default attributes
- $casts : array<string|int, string>
- The attributes that should be casted
- $fillable : array<int, string>
- The attributes that are mass assignable.
- $table : string
- Table name
- _isBillable() : bool
- This function is used to determinate if a model is ready to be billed.
- _isBillableDirectly() : bool
- This function is used to determinate if a model is ready to be billed.
- belongsToDefaultDomain() : bool
- Flavors do not belong to any domain, return false so that no disruptive action can be done on it
- billingEntries() : MorphMany
- getActivitylogOptions() : LogOptions
- Specifies which model properties should be logged in the activy log
- getBillableOwnerModel() : Flavor
- Flavors has no owner (and should not be billed directly)
- getCustomerProduct() : CustomerProduct|null
- getInvoiceItemDescription() : string
- isOwner() : bool
- isReadyToInsert() : bool
- Check if the model is consistent to be updated.
- isReadyToUpdate() : bool
- Check if the model is consistent to be inserted and created
- priceList() : BelongsTo
- priceListEntity() : MorphOne
- promotionsCustomers() : MorphMany
- retrieveDomain() : Domain
- This function will traverse all model relation up to the Domain
- servers() : HasMany
- _getUsage() : float
- Called by the custom attribute `usage`. This function must be overwritten by the class that should implement how usage is calculated
- _isReadyToInsert() : bool
- Check if the model is consistent to be updated.
- _isReadyToUpdate() : bool
- Check if the model is consistent to be inserted and created
- billableHourly() : Attribute
- billableHourlyCost() : Attribute
- billableMonthly() : Attribute
- billableMonthlyCost() : Attribute
- billableMultiplier() : Attribute
- billableOneTime() : Attribute
- billableOneTimeCost() : Attribute
- billablePerUsage() : Attribute
- billablePerUsageCost() : Attribute
- billableUponRelation() : Attribute
- billableUponRelationClass() : Attribute
- billableUponRelationFk() : Attribute
- boot() : void
- Boot the model and register the events
- bootIsBillable() : void
- newFactory() : FlavorFactory
- Get the Factory Class
- usage() : Attribute
- `usage` custom attribute (only getter).
Constants
table
Table name, as constant, used to avoid table name duplication across the source code base.
public
mixed
table
= "cloud_os_compute__flavors"
Tags
Properties
$activityLogName
public
static string
$activityLogName
= "crud"
$billable_directly
public
bool
$billable_directly
$billable_hourly
public
bool
$billable_hourly
$billable_hourly_cost
public
float
$billable_hourly_cost
$billable_monthly
public
bool
$billable_monthly
$billable_monthly_cost
public
float
$billable_monthly_cost
$billable_multiplier
public
float
$billable_multiplier
$billable_one_time
public
bool
$billable_one_time
$billable_one_time_cost
public
float
$billable_one_time_cost
$billable_per_usage
public
bool
$billable_per_usage
$billable_per_usage_cost
public
float
$billable_per_usage_cost
$billable_upon_relation
public
bool
$billable_upon_relation
$billable_upon_relation_class
public
string
$billable_upon_relation_class
$billable_upon_relation_fk
public
string
$billable_upon_relation_fk
$deleted_at
public
Carbon
$deleted_at
$error_at
public
Carbon
$error_at
$id
public
int
$id
$is_billable
public
bool
$is_billable
$openStackActivityLogName
public
static string
$openStackActivityLogName
= 'openstack'
$price_list_expires_at
public
int
$price_list_expires_at
$attributes
Default attributes
protected
array<string|int, mixed>
$attributes
= ['is_billable' => false, 'billable_directly' => false, 'status' => \Athomos\Bennu\Modules\Cloud\OpenStack\Compute\Enums\FlavorStatus::Deployed]
$casts
The attributes that should be casted
protected
array<string|int, string>
$casts
= ['status' => \Athomos\Bennu\Modules\Cloud\OpenStack\Compute\Enums\FlavorStatus::class, 'links' => 'array', 'is_billable' => 'boolean', 'billable_directly' => 'boolean']
$fillable
The attributes that are mass assignable.
protected
array<int, string>
$fillable
= ['name']
$table
Table name
protected
string
$table
= self::table
Methods
_isBillable()
This function is used to determinate if a model is ready to be billed.
public
_isBillable([bool|null $originIsBillable = null ]) : bool
Should be overwritten by models that needs a custom logic. If a model do not specialize this function the provided parameter will be returned, otherwise the attribute of the model. IMPORTANT!!! In the specialized version of this function always check the provided parameter, as in some cases a model may have been set on is_billable = false
Parameters
- $originIsBillable : bool|null = null
Return values
bool —_isBillableDirectly()
This function is used to determinate if a model is ready to be billed.
public
_isBillableDirectly([bool $originIsBillableDirectly = null ]) : bool
Should be overwritten by models that needs a custom logic. If a model do not specialize this function the provided parameter will be returned, otherwise the attribute of the model. IMPORTANT!!! In the specialized version of this function always check the provided parameter, as in some cases a model may have been set on is_billable = false
Parameters
- $originIsBillableDirectly : bool = null
Return values
bool —belongsToDefaultDomain()
Flavors do not belong to any domain, return false so that no disruptive action can be done on it
public
belongsToDefaultDomain() : bool
Return values
bool —billingEntries()
public
billingEntries() : MorphMany
Return values
MorphMany —getActivitylogOptions()
Specifies which model properties should be logged in the activy log
public
getActivitylogOptions() : LogOptions
Return values
LogOptions —getBillableOwnerModel()
Flavors has no owner (and should not be billed directly)
public
getBillableOwnerModel() : Flavor
Return values
Flavor —getCustomerProduct()
public
getCustomerProduct() : CustomerProduct|null
Return values
CustomerProduct|null —getInvoiceItemDescription()
public
getInvoiceItemDescription([array<string|int, mixed> $changes = [] ]) : string
Parameters
- $changes : array<string|int, mixed> = []
Return values
string —isOwner()
public
isOwner(AuthUser $authUser) : bool
Parameters
- $authUser : AuthUser
Return values
bool —isReadyToInsert()
Check if the model is consistent to be updated.
public
isReadyToInsert() : bool
Tags
Return values
bool —true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception
isReadyToUpdate()
Check if the model is consistent to be inserted and created
public
isReadyToUpdate() : bool
Tags
Return values
bool —true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception
priceList()
public
priceList() : BelongsTo
Return values
BelongsTo —priceListEntity()
public
priceListEntity() : MorphOne
Return values
MorphOne —promotionsCustomers()
public
promotionsCustomers() : MorphMany
Return values
MorphMany —retrieveDomain()
This function will traverse all model relation up to the Domain
public
retrieveDomain() : Domain
Tags
Return values
Domain —servers()
public
servers() : HasMany
Return values
HasMany —_getUsage()
Called by the custom attribute `usage`. This function must be overwritten by the class that should implement how usage is calculated
protected
_getUsage() : float
Return values
float —_isReadyToInsert()
Check if the model is consistent to be updated.
protected
_isReadyToInsert() : bool
Return values
bool —true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception
_isReadyToUpdate()
Check if the model is consistent to be inserted and created
protected
_isReadyToUpdate() : bool
Tags
Return values
bool —true if the model is ready to be updated. The return type is just for convenience cause the method throws an exception
billableHourly()
protected
billableHourly() : Attribute
Return values
Attribute —billableHourlyCost()
protected
billableHourlyCost() : Attribute
Return values
Attribute —billableMonthly()
protected
billableMonthly() : Attribute
Return values
Attribute —billableMonthlyCost()
protected
billableMonthlyCost() : Attribute
Return values
Attribute —billableMultiplier()
protected
billableMultiplier() : Attribute
Return values
Attribute —billableOneTime()
protected
billableOneTime() : Attribute
Return values
Attribute —billableOneTimeCost()
protected
billableOneTimeCost() : Attribute
Return values
Attribute —billablePerUsage()
protected
billablePerUsage() : Attribute
Return values
Attribute —billablePerUsageCost()
protected
billablePerUsageCost() : Attribute
Return values
Attribute —billableUponRelation()
protected
billableUponRelation() : Attribute
Return values
Attribute —billableUponRelationClass()
protected
billableUponRelationClass() : Attribute
Return values
Attribute —billableUponRelationFk()
protected
billableUponRelationFk() : Attribute
Return values
Attribute —boot()
Boot the model and register the events
protected
static boot() : void
Return values
void —bootIsBillable()
protected
static bootIsBillable() : void
Tags
Return values
void —newFactory()
Get the Factory Class
protected
static newFactory() : FlavorFactory
Return values
FlavorFactory —usage()
`usage` custom attribute (only getter).
protected
usage() : Attribute
It returns the current usage of the entity for billable purpose.
Return values
Attribute —float Usage