121 lines
3 KiB
PHP
121 lines
3 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Enums\Products\ProductSourceEnum;
|
|
use App\Enums\Products\ProductCertificationEnum;
|
|
use App\Enums\Products\ProductDistributionNetworkEnum;
|
|
use App\Enums\Products\ProductRayEnum;
|
|
use App\Enums\Products\ProductRangeEnum;
|
|
use App\Enums\Products\ProductGeoAreaEnum;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
/**
|
|
* @property integer $id
|
|
* @property integer $user_id
|
|
* @property integer $brand_id
|
|
* @property string $name
|
|
* @property string $brand
|
|
* @property string $entry_date
|
|
* @property boolean $source
|
|
* @property string $fair
|
|
* @property string $shop
|
|
* @property string $catalogue
|
|
* @property string $gencod
|
|
* @property string $picture
|
|
* @property string $docs
|
|
* @property string $url
|
|
* @property boolean $certification
|
|
* @property string $origins
|
|
* @property string $claims
|
|
* @property string $specified_claim
|
|
* @property boolean $distribution_network
|
|
* @property boolean $ray
|
|
* @property boolean $product_range
|
|
* @property boolean $geo area
|
|
* @property integer $weight
|
|
* @property integer $pvc
|
|
* @property string $comment
|
|
* @property boolean $is_tasted
|
|
* @property integer $tasters_number
|
|
* @property string $created_at
|
|
* @property string $updated_at
|
|
* @property string $deleted_at
|
|
* @property ProductComment[] $productComments
|
|
* @property User $user
|
|
*/
|
|
class Product extends Model
|
|
{
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $fillable = [
|
|
'user_id',
|
|
'brand_id',
|
|
'name',
|
|
'brand',
|
|
'entry_date',
|
|
'source',
|
|
'fair',
|
|
'shop',
|
|
'catalogue',
|
|
'gencod',
|
|
'picture',
|
|
'docs',
|
|
'url',
|
|
'certification',
|
|
'origins',
|
|
'claims',
|
|
'specified_claim',
|
|
'distribution_network',
|
|
'ray',
|
|
'product_range',
|
|
'geo area',
|
|
'weight',
|
|
'pvc',
|
|
'comment',
|
|
'is_tasted',
|
|
'tasters_number',
|
|
'created_at',
|
|
'updated_at',
|
|
'deleted_at'
|
|
];
|
|
|
|
/**
|
|
* The attributes that should be cast.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $casts = [
|
|
'source' => ProductSourceEnum::class,
|
|
'docs' => JsonCast::class,
|
|
'certification' => ProductCertificationEnum::class,
|
|
'origins' => JsonCast::class,
|
|
'claims' => JsonCast::class,
|
|
'distribution_network' => ProductDistributionNetworkEnum::class,
|
|
'ray' => ProductRayEnum::class,
|
|
'product_range' => ProductRangeEnum::class,
|
|
'geo_area' => ProductGeoAreaEnum::class,
|
|
'is_tasted' => 'boolean',
|
|
'entry_date' => 'datetime:Y-m-d',
|
|
'created_at' => 'datetime:Y-m-d',
|
|
'updated_at' => 'datetime:Y-m-d',
|
|
'deleted_at' => 'datetime:Y-m-d',
|
|
];
|
|
|
|
/**
|
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
|
*/
|
|
public function productComments()
|
|
{
|
|
return $this->hasMany('App\Models\ProductComment');
|
|
}
|
|
|
|
/**
|
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
|
*/
|
|
public function user()
|
|
{
|
|
return $this->belongsTo('App\Models\User');
|
|
}
|
|
}
|