$products * * @method static Builder|Discount published() * * @mixin \Eloquent */ #[Fillable([ 'type', 'is_old_price_displayed', 'date_start', 'date_end', ])] class Discount extends Model { #[\Override] protected function casts(): array { return [ 'type' => DiscountType::class, 'value' => DiscountValueCast::class, 'is_old_price_displayed' => 'bool', 'date_start' => 'datetime', 'date_end' => 'datetime', ]; } /** * @param \Illuminate\Database\Eloquent\Builder $query * @return \Illuminate\Database\Eloquent\Builder */ protected function scopePublished(Builder $query): Builder { return $query ->where('date_start', '<=', Date::now()) ->where('date_end', '>=', Date::now()); } /** @return \Illuminate\Database\Eloquent\Relations\HasMany<\App\Models\Product,$this> */ public function products(): HasMany { return $this->hasMany(Product::class); } }