---
title: "SQL scopy — Opening Hours for Laravel | Roundly"
description: "Filtrujte vlastníkov, ktorí majú otvorené teraz alebo počas celého intervalu, priamo v SQL cez voliteľné materializované intervaly."
url: https://roundly-consulting.com/sk/open-source/navody/opening-hours-for-laravel/sql-scopy
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Opening Hours for Laravel](https://roundly-consulting.com/sk/open-source/navody/opening-hours-for-laravel.md)

# SQL scopy

Ak chcete filtrovať vlastníkov v SQL — „ambulancie otvorené teraz“ v katalógu —, zapnite materializáciu, naplánujte príkaz na denné spúšťanie a použite scopy:

```bash
OPENING_HOURS_MATERIALIZE=true
OPENING_HOURS_MATERIALIZE_DAYS_AHEAD=60
OPENING_HOURS_MATERIALIZE_DAYS_BEHIND=1
```

```php
// routes/console.php
use Illuminate\Support\Facades\Schedule;

Schedule::command('opening-hours:materialize')->daily();

// anywhere
Clinic::query()->whereOpenAt(now())->get();
Clinic::query()->whereOpenThroughout($start, $end, 'pickup')->get();
```

- Tabuľka opening\_hours\_intervals uchováva zlúčené obdobia otvorenia ako riadky v UTC pre \[dnes − days\_behind, dnes + days\_ahead\], vyhodnotené tak, ako ich vidí vlastník — s jeho hookom časového pásma a dynamickými poskytovateľmi, aj keď je vlastník soft-deleted.
- Každá zmena zaradí unikátny MaterializeIntervalsJob pre daný kalendár na materialize.connection a materialize.queue — ďalší nepribudne, kým jeden ešte čaká.
- Scopy prijímajú okamihy od teraz − days\_behind po teraz + days\_ahead − 1 deň — odpočítaný deň pokrýva čas od posledného denného behu. Okamihy mimo tohto horizontu vyhodia OutsideMaterializedHorizonException namiesto tichej odpovede „zatvorené“.
- whereOpenAt($at, ?$calendar) a whereOpenThroughout($start, $end, ?$calendar) pridajú EXISTS naviazaný na vlastníka; zmazané kalendáre nemajú žiadne intervaly.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/opening-hours-for-laravel.md)
