MafOrder.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace App\Models;
  3. use App\Models\Scopes\YearScope;
  4. use Illuminate\Database\Eloquent\Attributes\ScopedBy;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  7. use Illuminate\Database\Eloquent\Relations\HasMany;
  8. use Illuminate\Database\Eloquent\SoftDeletes;
  9. #[ScopedBy([YearScope::class])]
  10. class MafOrder extends Model
  11. {
  12. use SoftDeletes;
  13. protected static function boot(): void
  14. {
  15. parent::boot();
  16. static::creating(function($attributes) {
  17. if(!isset($attributes->year)) {
  18. $attributes->year = year();
  19. }
  20. });
  21. }
  22. protected $fillable = [
  23. 'year',
  24. 'order_number',
  25. 'status',
  26. 'user_id',
  27. 'product_id',
  28. 'quantity',
  29. 'in_stock',
  30. ];
  31. const DEFAULT_SORT_BY = 'created_at';
  32. public function user(): BelongsTo
  33. {
  34. return $this->belongsTo(User::class);
  35. }
  36. public function product(): BelongsTo
  37. {
  38. return $this->belongsTo(Product::class);
  39. }
  40. public function products_sku(): HasMany
  41. {
  42. return $this->hasMany(ProductSKU::class);
  43. }
  44. }