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

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
modelAppointment::classModel termínu. Nasmerujte ho na podtriedu modelu z balíka, ak chcete upraviť jeho správanie; iná trieda vyhodí InvalidConfigurationException.
participantParticipant::classModel účastníka; platia rovnaké pravidlá ako pri model.
key_typebigintTyp 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.appointmentsappointmentsTabuľ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.participantsappointment_participantsTabuľ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.
timezonenullPá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_minutes60Trvanie použité, keď chýba trvanie aj čas konca; odvodí sa z neho ends_at. 1 – 525600.
prevent_conflictsfalsePri 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_occurrences365Pevný strop počtu výskytov, na ktoré sa môže rozvinúť jedna séria, 1 – 100000.
reviews.verified_attendance_resolverDatabaseVerifiedAttendanceResolver::classRozhoduje, č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_attendancefalsePri true review() pre neovereného autora vyhodí výnimku namiesto uloženia neovereného hodnotenia.
approvals.enforce_transitionsfalsePri 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=bigint

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