$lines * @property-read \App\Models\Shop|null $shop * * @method static Builder|Order whereCreatedAtBetween(\Carbon\CarbonInterface $start, \Carbon\CarbonInterface $end) * * @mixin \Eloquent */ #[Fillable([])] class Order extends Model { use HasUuidV7AsPrimaryKey; public const CREATED_AT = null; public function getId(): OrderId { return new OrderId(Uuid::fromString($this->id)); } /** @return \Illuminate\Database\Eloquent\Relations\HasMany<\App\Models\OrderLine,$this> */ public function lines(): HasMany { return $this->hasMany(OrderLine::class); } /** @return \Illuminate\Database\Eloquent\Relations\BelongsTo<\App\Models\Shop,$this> */ public function shop(): BelongsTo { return $this->belongsTo(Shop::class); } /** @param Builder $query */ protected function scopeWhereCreatedAtBetween(Builder $query, CarbonInterface $start, CarbonInterface $end): void { $minUuid = (string) Uuid::uuid7($start->copy()->startOfDay()); $maxUuid = (string) Uuid::uuid7($end->copy()->endOfDay()); $query->whereBetween('id', [$minUuid, $maxUuid]); } #[\Override] protected function casts(): array { return [ 'pickup_day' => 'date', 'employee' => OrderEmployeeCast::class, 'total' => MoneyCast::class, 'status' => OrderStatus::class, 'delivery_address' => DeliveryAddressCast::class, 'reference' => OrderReferenceCast::class, ]; } }