Konfigurácia
Publikovaný config/appointments.php v plnom znení:
use RoundlyConsulting\Appointments\Models\Appointment;
use RoundlyConsulting\Appointments\Models\Participant;
use RoundlyConsulting\Appointments\Reviews\DatabaseVerifiedAttendanceResolver;
return [
'model' => Appointment::class,
'participant' => Participant::class,
// bigint | uuid | ulid — the key type of the polymorphic participant column
'key_type' => env('APPOINTMENTS_KEY_TYPE', 'bigint'),
'table_names' => [
'appointments' => 'appointments',
'participants' => 'appointment_participants',
],
'timezone' => null,
'default_duration_minutes' => 60,
'prevent_conflicts' => false,
'recurrence' => [
'max_occurrences' => 365,
],
'reviews' => [
'verified_attendance_resolver' => DatabaseVerifiedAttendanceResolver::class,
'require_verified_attendance' => false,
],
'approvals' => [
'enforce_transitions' => false,
],
];Všetky kľúče
| Kľúč | Predvolené | Účel |
|---|---|---|
model | Appointment::class | Model termínu. Nasmerujte ho na podtriedu modelu z balíka, ak chcete upraviť jeho správanie; iná trieda vyhodí InvalidConfigurationException. |
participant | Participant::class | Model účastníka; platia rovnaké pravidlá ako pri model. |
key_type | bigint | Typ kľúča polymorfného stĺpca participant_id — bigint, uuid alebo ulid (env APPOINTMENTS_KEY_TYPE). Nastavte ho pred migráciou; iná hodnota pri spustení migrácií vyhodí InvalidConfigurationException. |
table_names.appointments | appointments | Tabuľka, ktorú vytvoria migrácie a z ktorej model Appointment číta a do ktorej zapisuje. Nastavte ju pred migráciou. Prázdna hodnota = nenastavená (appointments); iná hodnota musí byť reťazec. |
table_names.participants | appointment_participants | Tabuľka, ktorú vytvoria migrácie a z ktorej model Participant číta a do ktorej zapisuje. Nastavte ju pred migráciou. Prázdna hodnota = nenastavená (appointment_participants); iná hodnota musí byť reťazec. |
timezone | null | Pásmo, ktoré sa uloží k novému termínu, ak žiadne nezadáte, a v ktorom sa číta reťazec času bez posunu; nenastavená hodnota (null alebo prázdna) použije config('app.timezone'), iná hodnota musí byť pásmo, ktoré PHP pozná (Europe/Bratislava). Každý termín si ponecháva pásmo, v ktorom bol rezervovaný, takže neskoršia zmena existujúce termíny nepreplánuje. |
default_duration_minutes | 60 | Trvanie použité, keď chýba trvanie aj čas konca; odvodí sa z neho ends_at. 1 – 525600. |
prevent_conflicts | false | Pri true vytvorenie či presun termínu aj pridanie účastníka vyhodí výnimku, ak má účastník prekrývajúcu sa rezerváciu. Dá sa zapnúť aj pre jedno volanie. |
recurrence.max_occurrences | 365 | Pevný strop počtu výskytov, na ktoré sa môže rozvinúť jedna séria, 1 – 100000. |
reviews.verified_attendance_resolver | DatabaseVerifiedAttendanceResolver::class | Rozhoduje, či je hodnotenie overené (predvolene: autor je účastníkom dokončeného termínu). Musí implementovať VerifiedAttendanceResolver. Nenastavená hodnota (vynechaná, null alebo prázdna) stále naviaže DatabaseVerifiedAttendanceResolver; ak nechcete overovať nikdy, výslovne uveďte NullVerifiedAttendanceResolver::class. |
reviews.require_verified_attendance | false | Pri true review() pre neovereného autora vyhodí výnimku namiesto uloženia neovereného hodnotenia. |
approvals.enforce_transitions | false | Pri true listener synchronizujúci stav zo schválenia rešpektuje maticu prechodov — namapovaný, no nepovolený prechod preskočí. |
Kľúče typu bool prijímajú aj reťazce v štýle env — true/1/on/yes a false/0/off/no — a kľúče typu int celočíselné reťazce ('45'). Nenastavený kľúč (chýbajúci, null alebo prázdny: '' či len medzery) znamená predvolenú hodnotu. Čokoľvek iné — preklep v prepínači ('disabled'), trvanie či strop, ktoré nie je celé číslo v rozsahu ('an hour', 0), nereťazcový názov tabuľky, neznáme pásmo, resolver, ktorý nie je VerifiedAttendanceResolver — vyhodí InvalidConfigurationException s názvom kľúča, namiesto aby sa potichu použila predvolená hodnota.
Prostredie (env)
Cez env sa nastavuje iba typ kľúča účastníkov. Určuje typ stĺpca v databáze, preto ho nastavte ešte pred publikovaním a spustením migrácií:
# bigint | uuid | ulid — set before you publish and run the migrations
APPOINTMENTS_KEY_TYPE=bigintPríkaz about
php artisan about --only=appointments vypíše výsledné nastavenie:
- Model a Participant model — krátke názvy tried použitých modelov.
- Appointments table a Participants table — nakonfigurované názvy tabuliek.
- Default timezone — SET alebo APP DEFAULT. Vypíše sa len to, či je pásmo nastavené, nikdy nie jeho hodnota.
- Default duration — napr. 60 min — a Max occurrences, strop opakovaní.
- Prevent conflicts, Require verified attendance a Approval transitions — ON alebo OFF.
- Attendance resolver — názov triedy naviazaného resolvera hodnotení.
Chybný názov tabuľky, pásmo, predvolené trvanie, strop výskytov či resolver sa zobrazí ako INVALID, takže about sa vypíše aj pri zle nastavenej aplikácii, kým skutočné čítanie konfigurácie vyhodí výnimku.
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.