76 lines
1.4 KiB
PHP
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();
|
||
|
}
|