99 lines
2.2 KiB
PHP
99 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace App\Models\Ecommerce\Product\Order;
|
|
|
|
use App\Models\Ecommerce\Product\Order\Concerns\HasPayments;
|
|
use App\Models\Ecommerce\Product\Order\Concerns\HasShipping;
|
|
use App\Models\Ecommerce\Product\Order\Concerns\HasStatus;
|
|
use App\Models\System\Settings\Location\Province;
|
|
use App\Models\System\Settings\Payments\PaymentType;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
use App\Models\Ecommerce\Product\Order\Shipping\OrderShippingMethod;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
|
|
class Order extends Model
|
|
{
|
|
use HasFactory;
|
|
use HasPayments;
|
|
use HasShipping;
|
|
use HasStatus;
|
|
use SoftDeletes;
|
|
|
|
/**
|
|
* The attributes that are mass assignable.
|
|
*
|
|
* @var array<string>
|
|
*/
|
|
protected $fillable = [
|
|
'number',
|
|
'status',
|
|
'shipping_method',
|
|
'shipping_method_id',
|
|
'shipping_price',
|
|
'payment_type_id',
|
|
'notes',
|
|
'customer_name',
|
|
'customer_phone',
|
|
'customer_address',
|
|
'delivery_time',
|
|
'delivery_at',
|
|
'region',
|
|
'halkbank_id',
|
|
'user_id',
|
|
'additional_tax',
|
|
'province_id',
|
|
'source_app',
|
|
];
|
|
|
|
/**
|
|
* The attributes that should be cast.
|
|
*/
|
|
protected $casts = [
|
|
'delivery_at' => 'date',
|
|
];
|
|
|
|
/**
|
|
* User (customer)
|
|
*/
|
|
public function user(): BelongsTo
|
|
{
|
|
return $this->belongsTo(User::class);
|
|
}
|
|
|
|
/**
|
|
* Related Province
|
|
*/
|
|
public function province(): BelongsTo
|
|
{
|
|
return $this->belongsTo(Province::class);
|
|
}
|
|
|
|
/**
|
|
* Order items
|
|
*/
|
|
public function items(): HasMany
|
|
{
|
|
return $this->hasMany(OrderItem::class);
|
|
}
|
|
|
|
/**
|
|
* Payment types
|
|
*/
|
|
public function paymentType(): BelongsTo
|
|
{
|
|
return $this->belongsTo(PaymentType::class, 'payment_type_id');
|
|
}
|
|
|
|
/**
|
|
* Shipping method
|
|
*/
|
|
public function shippingMethod(): BelongsTo
|
|
{
|
|
return $this->belongsTo(OrderShippingMethod::class, 'shipping_method_id');
|
|
}
|
|
}
|