osb/app/Interfaces/ProductItem.php
2022-02-02 10:43:59 +11:00

76 lines
1.4 KiB
PHP

<?php
namespace App\Interfaces;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
interface ProductItem
{
/* RELATIONS */
/**
* Supplier that provides this offering
*
* @return BelongsTo
*/
//public function supplier_detail(): BelongsTo;
/**
* Available products created from this supplier offering
*
* @return BelongsToMany
*/
//public function types(): BelongsToMany;
/* ATTRIBUTES */
/**
* Return the billing interval base cost including tax
*
* @return float
*/
public function getBaseCostTaxableAttribute(): float;
/**
* Return the billing interval that the supplier charges
*
* @return string
*/
public function getBillingIntervalAttribute(): int;
/**
* The term that the supplier imposes on this service being connected
*
* @return int
*/
public function getContractTermAttribute(): int;
/**
* Suppliers offering name (short)
*
* @return string
*/
public function getNameAttribute(): string;
/**
* Suppliers offering name (long)
*
* @return string
*/
public function getNameLongAttribute(): string;
/**
* Return the setup cost including tax
*
* @return float
*/
public function getSetupCostTaxableAttribute(): float;
/**
* Return the type of offering this is.
*
* @return string
*/
public function getTypeAttribute();
}