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

Fluentný builder je najkratšia cesta k rezervácii, no každý zápis pod ním prijíma typované DTO. Odovzdávajte ich sami z importov, API endpointov či úloh vo fronte — cez fasádu, injektovaný AppointmentManager alebo akciu (pozrite DI a akcie).

AppointmentData

create(), createRecurring() aj CreateAppointmentAction prijímajú AppointmentData — fluentný builder interne vytvára presne toto DTO:

use Carbon\CarbonImmutable;
use RoundlyConsulting\Appointments\DataTransferObjects\AppointmentData;
use RoundlyConsulting\Appointments\DataTransferObjects\ParticipantData;
use RoundlyConsulting\Appointments\Enums\ParticipantRole;
use RoundlyConsulting\Appointments\Facades\Appointments;

$appointment = Appointments::create(new AppointmentData(
    name: 'Project kickoff',
    startsAt: CarbonImmutable::parse('2026-07-01 17:30'),
    durationMinutes: 90,
    participants: [
        new ParticipantData($host, ParticipantRole::Organiser),
        new ParticipantData($guest),
    ],
));
PoleTypPredvolenéVýznam
namestring—Názov termínu.
startsAtCarbonImmutable—Začiatok; pri uložení sa prevedie do UTC.
durationMinutes?intnullTrvanie; null použije default_duration_minutes. Hodnota pod jedna vyhodí InvalidScheduleException.
timezone?stringnullPásmo uložené k termínu; null uloží appointments.timezone, inak app.timezone.
description?stringnullPopis.
meta?arraynullĽubovoľné meta údaje.
statusStatusStatus::PendingPočiatočný stav.
participantszoznam ParticipantData[]Účastníci na pripojenie.
recurrence?RecurrenceDatanullPravidlo, ktoré createRecurring() použije, ak žiadne neodovzdáte; create() ho ignoruje.
preventConflictsboolfalseOchrana pred dvojitou rezerváciou pre toto volanie.
location?stringnullNázov miesta konania.
coordinates?CoordinatesnullSúradnice miesta konania.
contactszoznam ContactData[]Kontakty rezervácie na pridanie.
approval?AppointmentApprovalDatanullŽiadosť o schválenie na otvorenie (schvaľovatelia, pravidlo, kvórum, stupne, workflow).
recurrenceGroup?stringnullSpája výskyty jednej série; nastavuje ho createRecurring().

ParticipantData

Jedno na účastníka: new ParticipantData(Model $participant, ?ParticipantRole $role = null, ?array $meta = null). Účastníkom môže byť akýkoľvek Eloquent model. Prijíma ho aj AttachParticipantAction.

RecurrenceData

createRecurring() a ScheduleRecurringAppointmentAction prijímajú pravidlo RecurrenceData — jeho polia nájdete v časti Opakované termíny. create() AppointmentData::$recurrence ignoruje; createRecurring() ho použije, ak žiadne pravidlo neodovzdáte.

Validácia pri vytvorení

Obe DTO odmietnu hodnoty, ktoré nemôžu opísať rezerváciu, ešte pred akýmkoľvek zápisom: AppointmentData s durationMinutes pod jedna vyhodí InvalidScheduleException a RecurrenceData s intervalom či počtom pod jedna alebo s dňom v týždni mimo 1–7 vyhodí InvalidRecurrenceException.

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.