90 lines
1.6 KiB
PHP
90 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace App\Interfaces;
|
|
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
|
|
|
interface SupplierItem
|
|
{
|
|
/* 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;
|
|
|
|
/**
|
|
* The minimum cost of ordering this offering
|
|
*
|
|
* @return float
|
|
*/
|
|
public function getMinCostAttribute(): float;
|
|
|
|
/**
|
|
* The minimum cost of ordering this offering including taxes
|
|
*
|
|
* @return float
|
|
*/
|
|
public function getMinCostTaxableAttribute(): float;
|
|
|
|
/**
|
|
* 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();
|
|
} |