You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
topnotch_website/app/Models/ProductService.php

60 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use Database\Factories\ProductServiceFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\SoftDeletes;
class ProductService extends Model
{
/** @use HasFactory<ProductServiceFactory> */
use HasFactory, SoftDeletes;
protected $fillable = [
'order_id',
'service_file_id',
'service_type',
'placement',
'setup_amount',
'amount',
'amount_price',
'notes',
];
protected $appends = [
'service_details',
'price',
];
public function getPriceAttribute(): float
{
return number_format($this->amount * $this->amount_price, 2);
}
public function getServiceDetailsAttribute(): string
{
$file = $this->serviceFile;
return $file->name.', '.$this->placement.', '.$file->width.' W, '.$file->height.' H';
}
/**
* @return BelongsTo<Order, self>
*/
public function order(): BelongsTo
{
return $this->belongsTo(Order::class);
}
/**
* @return BelongsTo<ServiceFile, self>
*/
public function serviceFile(): BelongsTo
{
return $this->BelongsTo(ServiceFile::class);
}
}