MafOrder.php 1.2 KB

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