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

Open source

Appointments for Laravel

Inštalácia
composer require roundly-consulting/appointments-for-laravel
Vyžaduje: PHP ^8.4 · Laravel ^12.0|^13.0

Prehľad

Nástroj na plánovanie termínov pre Laravel. Vytvárajte termíny s trvaním a časovým pásmom, pripájajte ako účastníka akýkoľvek Eloquent model, blokujte dvojité rezervácie, posúvajte rezervácie cez strážený životný cyklus stavu, generujte opakované série a exportujte štandardné kalendárové súbory .ics. Všetko pokryje jedna fasáda Appointments a rovnaké API môžete injektovať ako AppointmentManager. Stavia na vlastných provider balíkoch Roundly pre polohu miesta konania, kontakty hostí, schvaľovanie rezervácií a hodnotenia po návšteve — licencia MIT, bez závislostí tretích strán okrem Laravelu.

Čo získate

Fasáda, DI alebo akcie

Rezervujte cez Appointments::schedule()->startingAt()->lasting()->create(), injektujte AppointmentManager alebo spúšťajte akcie s typovanými DTO.

Účastníkom môže byť akýkoľvek model

Používatelia, zákazníci, miestnosti či vozidlá sa pripájajú cez jednu polymorfnú tabuľku — s rolou a vlastnými meta údajmi.

Strážený životný cyklus stavu

Čaká → potvrdený → dokončený, plus zrušený, odmietnutý a neprítomnosť. Nepovolené prechody vyhodia výnimku, každá zmena spustí event.

Ochrana pred dvojitou rezerváciou

Zapnite ju pre jedno volanie alebo globálne: prekryv u ktoréhokoľvek účastníka vyhodí výnimku — vďaka zámkom riadkov aj pri dvoch súbežných rezerváciách.

Opakované série

Denné, týždenné či mesačné pravidlá s intervalom, počtom, koncovým dátumom a dňami v týždni — vytvorené v jednej transakcii, všetko alebo nič.

Export do kalendára a zaznamenávajúci fake

Súbor .ics podľa RFC 5545 pre jeden termín aj celý feed; Appointments::fake() zaznamená každý zápis pre assertScheduled() a ďalšie asercie.

Schvaľovanie, hodnotenia a miesta

Schválenie rezervácie riadi jej stav, hodnotenia po návšteve sa overujú účasťou a miesta konania podporujú vyhľadávanie v okruhu.

Dokumentácia

Inštalácia

Inštalácia cez Composer, publikovanie migrácií balíka aj jeho provider balíkov a voliteľne konfigurácie.

Konfigurácia

Každý konfiguračný kľúč a jeho predvolená hodnota — modely, typ kľúča, tabuľky, pásmo, trvanie, konflikty, opakovania, hodnotenia a schvaľovanie.

Schéma a vlastné modely

Tabuľky termínov a účastníkov, kľúče účastníkov UUID/ULID a náhrada modelov Appointment a Participant vlastnými.

Fasáda Appointments

Prehľad fasády Appointments — builder schedule(), vytváranie z DTO, handle for() s participants(), dostupnosť, ICS feedy a náhľady opakovaní.

DI a akcie

Namiesto fasády injektujte AppointmentManager alebo spúšťajte šesť akcií priamo — plus úplná mapa metód fasády na akcie.

Typované DTO

AppointmentData, ParticipantData a RecurrenceData — typované DTO za create(), createRecurring(), fluentným builderom aj akciami.

Vytváranie termínov

Vytvárajte termíny fluentným builderom Appointments::schedule() alebo z typovaného DTO — reťaziteľné metódy, predvolené hodnoty a koncové volania.

Trvanie a časové pásma

Ako sa začiatok, koniec a trvanie odvodzujú navzájom, prečo sa časy ukladajú v UTC a ako čítať lokálny čas.

Účastníci

Pripojte akýkoľvek Eloquent model ako účastníka s rolou a meta údajmi, vypíšte jeho termíny cez HasAppointments a pridávajte či odoberajte ľudí neskôr.

Životný cyklus stavu

Strážený stavový automat — prechody, pomocné metódy, popisy, farby a výnimka InvalidStatusTransitionException.

Detekcia konfliktov

Blokujte dvojité rezervácie pre jedno volanie alebo globálne, preskúmajte kolidujúce termíny a overte dostupnosť cez Appointments::isAvailable().

Presúvanie termínov

Presuňte termín na nový začiatok, ponechajte alebo zmeňte trvanie, strážte konflikty a reagujte na AppointmentRescheduled.

Opakované termíny

Denné, týždenné či mesačné série s intervalom, počtom, koncovým dátumom a dňami v týždni — vytvorené atomicky a prepojené UUID skupiny.

Dotazovanie

Query scopes pre nadchádzajúce, minulé a prekrývajúce sa termíny aj termíny účastníka, plus filtre stavu a zoradenie.

Export do kalendára (ICS)

Exportujte jeden termín alebo celý rozvrh ako .ics podľa RFC 5545 — mapovanie stavov, escapovanie, riadky GEO, ORGANIZER a ATTENDEE.

Miesto konania

Priraďte termínu názov miesta a súradnice, merajte vzdialenosť a hľadajte termíny v okruhu.

Kontakty hostí

Ukladajte e-maily a telefónne čísla rezervácie priamo na termín a premeňte ich na riadky ORGANIZER a ATTENDEE v kalendári.

Schvaľovanie rezervácií

Vyžadujte schválenie pred potvrdením rezervácie — jednoduché, kvórové, viacstupňové či prednastavené workflow, ktoré riadia stav termínu.

Hodnotenia po návšteve

Zbierajte hodnotenia po návšteve overené pre skutočných účastníkov, pripojte vlastný resolver účasti a čítajte súhrny hodnotení.

Eventy a výnimky

Sedem eventov termínov a účastníkov, ich dáta a kedy sa spúšťajú, plus každá výnimka, ktorú balík vyhadzuje.

Testovanie

Zaznamenajte každý zápis rezervácií cez Appointments::fake() a jeho asercie, na zvyšok použite factory modelu a ukážkové testy v Peste.

Požiadavky

PHP 8.4+, Laravel 12 alebo 13 a šesť provider balíkov Roundly, ktoré Composer nainštaluje automaticky.

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.