ldc-arcadia-api/src/Infra/Database/Models/Brand.php

59 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
namespace Infra\Database\Models;
use Database\Factories\BrandFactory;
use Illuminate\Database\Eloquent\Concerns\HasUuids;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Infra\Casts\ArcadiaIdCast;
use Infra\Casts\BrandCodeCast;
/**
* @phpcs:disable Generic.Files.LineLength.TooLong
*
* @property string $id
* @property string $name The human readable brand name
* @property \Domain\Models\ValueObjects\Brand\BrandCode $uwil_public_id A unique public id that is generated spefically for the UWIL eco system
* @property \Domain\Models\ValueObjects\Brand\ArcadiaId $arcadia_id An unique external autoincrement id for the brand, it may be exposed but should not be used
*
* @method static \Database\Factories\BrandFactory factory($count = null, $state = [])
*
* @mixin \Eloquent
*/
final class Brand extends Model
{
/** @use HasFactory<BrandFactory> */
use HasFactory;
use HasUuids;
protected static function newFactory(): BrandFactory
{
return BrandFactory::new();
}
protected $table = 'brands';
public $timestamps = false;
/** @var list<string> */
protected $fillable = [
'id',
'name',
'arcadia_id',
'uwil_public_id',
];
/** @return array<string, string> */
#[\Override]
protected function casts(): array
{
return [
'arcadia_id' => ArcadiaIdCast::class,
'uwil_public_id' => BrandCodeCast::class,
];
}
}