NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

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 kryptomien

Odoslaní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.