ldc-startcoq/app/Models/Product.php
2023-02-23 16:12:54 +01:00

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');
}
}