Cart.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Models;
  3. use App\Enums\CartStatusEnum;
  4. use Illuminate\Database\Eloquent\Factories\HasFactory;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\SoftDeletes;
  7. /**
  8. * @property int $id
  9. * @property int $client_id
  10. * @property CartStatusEnum $status
  11. * @property \Illuminate\Support\Carbon|null $created_at
  12. * @property \Illuminate\Support\Carbon|null $updated_at
  13. * @property \Illuminate\Support\Carbon|null $deleted_at
  14. * @property-read \App\Models\Client $client
  15. * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\CartItem> $items
  16. * @property-read int|null $items_count
  17. * @property-read \Illuminate\Database\Eloquent\Collection<int, \App\Models\Schedule> $schedules
  18. * @property-read int|null $schedules_count
  19. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart newModelQuery()
  20. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart newQuery()
  21. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart onlyTrashed()
  22. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart query()
  23. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart whereClientId($value)
  24. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart whereCreatedAt($value)
  25. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart whereDeletedAt($value)
  26. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart whereId($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart whereStatus($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart whereUpdatedAt($value)
  29. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart withTrashed(bool $withTrashed = true)
  30. * @method static \Illuminate\Database\Eloquent\Builder<static>|Cart withoutTrashed()
  31. * @mixin \Eloquent
  32. */
  33. class Cart extends Model
  34. {
  35. use HasFactory, SoftDeletes;
  36. protected $table = 'carts';
  37. protected $fillable = [
  38. 'client_id',
  39. 'status',
  40. ];
  41. protected $casts = [
  42. 'status' => CartStatusEnum::class,
  43. 'created_at' => 'datetime',
  44. 'updated_at' => 'datetime',
  45. 'deleted_at' => 'datetime',
  46. ];
  47. public function client()
  48. {
  49. return $this->belongsTo(Client::class);
  50. }
  51. public function items()
  52. {
  53. return $this->hasMany(CartItem::class);
  54. }
  55. public function schedules()
  56. {
  57. return $this->belongsToMany(Schedule::class, 'cart_items')
  58. ->withTimestamps();
  59. }
  60. }