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/OrderProduct.php

54 lines
1.2 KiB
PHP

<?php
namespace App\Models;
use Database\Factories\OrderProductFactory;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Database\Eloquent\SoftDeletes;
class OrderProduct extends Model
{
/** @use HasFactory<OrderProductFactory> */
use HasFactory, SoftDeletes;
protected $fillable = [
'order_id',
'sku',
'product_name',
'color',
];
public function totalQuantity(): int
{
return array_sum($this->productSizes()->pluck('amount')->toArray());
}
/**
* @return BelongsTo<Order, self>
*/
public function order(): BelongsTo
{
return $this->belongsTo(Order::class);
}
/**
* @return HasOne<ServiceFile>
*/
public function serviceFile(): HasOne
{
return $this->hasOne(ServiceFile::class);
}
/**
* @return HasMany<ProductSize>
*/
public function productSizes(): HasMany
{
return $this->hasMany(ProductSize::class);
}
}