update
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Enums\Product;
|
||||
|
||||
enum ProductTypeEnums: string
|
||||
{
|
||||
case VPS = 'vps';
|
||||
case HOSTING = 'hosting';
|
||||
case CLOUD = 'cloud';
|
||||
case EMAIL = 'email';
|
||||
case SSL = 'ssl';
|
||||
case DOMAIN = 'domain';
|
||||
case WEB_DESIGN = 'web design';
|
||||
|
||||
public function label(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::VPS => 'VPS',
|
||||
self::HOSTING => 'Hosting',
|
||||
self::CLOUD => 'Cloud',
|
||||
self::EMAIL => 'Email',
|
||||
self::SSL => 'SSL',
|
||||
self::DOMAIN => 'Domain',
|
||||
self::WEB_DESIGN => 'Web Design',
|
||||
};
|
||||
}
|
||||
|
||||
public function color(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::VPS => 'blue',
|
||||
self::HOSTING => 'green',
|
||||
self::CLOUD => 'cyan',
|
||||
self::EMAIL => 'yellow',
|
||||
self::SSL => 'teal',
|
||||
self::DOMAIN => 'purple',
|
||||
self::WEB_DESIGN => 'pink',
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Traits\HasUuid;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Product extends Model
|
||||
{
|
||||
use HasFactory, HasUuid;
|
||||
|
||||
protected array $uuidColumns = ['uuid'];
|
||||
protected string $slugColumn = 'name';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
'slug',
|
||||
'description',
|
||||
'price',
|
||||
'price_sale',
|
||||
'billing_cycle',
|
||||
'cpu',
|
||||
'ram',
|
||||
'gpu',
|
||||
'disk',
|
||||
'bandwidth',
|
||||
'is_active',
|
||||
'sort_order',
|
||||
];
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class ProductVMTemplates extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class VirtualMachines extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Traits;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
trait HasUuid
|
||||
{
|
||||
protected static function bootHasUuid(): void
|
||||
{
|
||||
static::creating(function ($model) {
|
||||
foreach ($model->getUuidColumns() as $column) {
|
||||
if (empty($model->{$column})) {
|
||||
$model->{$column} = (string) Str::uuid();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public function getUuidColumns(): array
|
||||
{
|
||||
return property_exists($this, 'uuidColumns')
|
||||
? $this->uuidColumns
|
||||
: ['uuid'];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user