Coupon.php 928 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App\Models;
  3. use App\Casts\datestamp;
  4. use Illuminate\Database\Eloquent\Builder;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\SoftDeletes;
  7. /**
  8. * 优惠券.
  9. */
  10. class Coupon extends Model
  11. {
  12. use SoftDeletes;
  13. protected $table = 'coupon';
  14. protected $casts = ['limit' => 'array', 'start_time' => datestamp::class, 'end_time' => datestamp::class, 'deleted_at' => 'datetime'];
  15. protected $guarded = [];
  16. // 筛选类型
  17. public function scopeType(Builder $query, int $type): Builder
  18. {
  19. return $query->whereType($type);
  20. }
  21. public function used(): bool
  22. {
  23. $this->status = 1;
  24. return $this->save();
  25. }
  26. public function expired(): bool
  27. {
  28. $this->status = 2;
  29. return $this->save();
  30. }
  31. public function isExpired(): bool
  32. {
  33. return $this->end_time < time() || $this->status === 2;
  34. }
  35. }