API zdroje
Balík neobsahuje routy ani controllery — endpointy sú vaše. Štyri JSON resources pokrývajú bežné výstupy:
use RoundlyConsulting\OpeningHours\Facades\OpeningHours;
use RoundlyConsulting\OpeningHours\Http\Resources\CalendarResource;
use RoundlyConsulting\OpeningHours\Http\Resources\DayHoursResource;
use RoundlyConsulting\OpeningHours\Http\Resources\OpeningStatusResource;
use RoundlyConsulting\OpeningHours\Http\Resources\SlotResource;
return OpeningStatusResource::make(OpeningHours::for($clinic)); // status (optionally ->at($instant))
return CalendarResource::make(OpeningHours::calendar($clinic)); // editable definition
return DayHoursResource::collection(OpeningHours::for($clinic)->forWeekOf(now()));
return SlotResource::collection($slots);Tvar stavu
OpeningStatusResource vracia timezone, at, is_open, current_period, next_open, next_close, today, week (7 dní) a upcoming_exceptions. Okamihy sú v ISO-8601 s posunom; preložené sú len weekday_label a text (podľa jazyka aplikácie):
{
"timezone": "Europe/Bratislava",
"at": "2026-09-26T12:00:00+02:00",
"is_open": true,
"current_period": {"start": "2026-09-26T09:00:00+02:00", "end": "2026-09-26T14:00:00+02:00",
"label": null, "start_unbounded": false, "end_unbounded": false},
"next_open": "2026-09-28T08:00:00+02:00",
"next_close": "2026-09-26T14:00:00+02:00",
"today": {"date": "2026-09-26", "weekday": "saturday", "weekday_label": "Saturday", "closed": false,
"all_day": false, "source": "schedule", "label": null,
"ranges": [{"from": "09:00", "to": "14:00", "label": null, "capacity": null}], "text": "09:00–14:00"},
"week": [ /* 7 day objects */ ],
"upcoming_exceptions": [ {"date": "2026-12-24", "closed": true, "label": "Christmas", "ranges": []} ]
}week obsahuje najbližších sedem dátumov (api.week_mode = upcoming) alebo kalendárny týždeň od first_day_of_week (calendar_week). next_open a next_close sú null, ak sa v rámci search_days nič nenájde.
Upraviteľné definície
CalendarResource vracia kanonický vstup plus id, key, revision a updated_at. Môžete ho bez úprav odoslať späť do OpeningHours::sync() — revision pošlite ako expectedRevision, aby ste zachytili súbežné úpravy:
// GET — the editable definition, including its revision
return CalendarResource::make(OpeningHours::calendar($clinic));
// PUT — submit it back (edited or unchanged); the revision guards concurrent edits
OpeningHours::sync(
$clinic,
$request->validated('opening_hours'),
expectedRevision: $request->integer('revision'),
);
// Status as of a given instant instead of now
return OpeningStatusResource::make(OpeningHours::for($clinic))->at($instant);meta sa zobrazí len pri api.expose_meta — a definícia odoslaná späť bez meta ho vymaže.
Tvar dňa a slotu
- DayHoursResource — date, weekday, weekday_label, closed, all_day, source, label, ranges a text (plus meta, ak je zverejnené).
- SlotResource — start, end, available, remaining_capacity a reason.
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 kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
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.