---
title: "Notifikácie a pripomienky — Events for Laravel | Roundly"
description: "Deväť notifikácií vo fronte po commite v angličtine a slovenčine — príjemcovia a kontroly pri doručení, obsah, výmena, tiché zápisy a pripomienky."
url: https://roundly-consulting.com/sk/open-source/navody/events-for-laravel/notifikacie
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Events for Laravel](https://roundly-consulting.com/sk/open-source/navody/events-for-laravel.md)

# Notifikácie a pripomienky

Každá notifikácia rozširuje Notifications\\EventNotification: ShouldQueue, odosiela sa až po commite, na fronte events.notifications.queue, cez kanály events.notifications.channels (mail a podľa potreby database), v jazyku príjemcu s časmi v časovom pásme podujatia a jeho skratkou. Žiadna nenesie názov triedy ani údaje iného účastníka.

| Typ | Trieda | Odošle sa, keď | Komu |
| --- | --- | --- | --- |
| `invited` | `EventInvitationNotification` | Pozvánka sa odošle — alebo, ak bola odoslaná na koncepte, po jeho zverejnení (s novým tokenom). | Pozvaný (odkaz na prijatie; vo fronte šifrované). |
| `confirmed` | `RsvpConfirmedNotification` | RSVP prejde do going. | Účastník — kód pre check-in ako text a odkaz na vstupenku, nikdy QR obrázok v e-maile. |
| `waitlist_promoted` | `WaitlistPromotedNotification` | Skupina z čakacej listiny dostane miesta. | Účastník — hneď pri bezplatnom mieste; pri platenom z úlohy platby, s odkazom na platbu. |
| `reminder` | `EventReminderNotification` | events:sweep, pri každom posune pripomienky. | going |
| `updated` | `EventUpdatedNotification` | Zmena začiatku, konca, príznaku celodenného podujatia, časového pásma, miesta konania, odkazu na pripojenie alebo spôsobu účasti na ohlásenom podujatí. | going, held |
| `postponed · rescheduled · cancelled` | EventPostponed… · EventRescheduled… · EventCancelledNotification | Odložené · presunuté · zrušené (vrátane rezervácií, ktoré zrušenie uvoľnilo). | going, held, waitlisted, interested |
| `moved_online` | `EventMovedOnlineNotification` | Ohlásené podujatie prešlo online. | going, held |

## Príjemcovia a doručenie

- Príjemcovia vychádzajú z publika podľa stavu RSVP (events.notifications.audiences.<type>), každý raz, bez toho, kto zmenu urobil (ak nie je zapnuté notify\_actor), a len tí, ktorí podujatie smú vidieť a dá sa im poslať notifikácia — model bez ciest pre notifikácie sa preskočí a events:doctor ich spočíta.
- Pri doručení každá notifikácia overí znova (shouldSend()), že podujatie stále existuje a príjemca ho vidí a že ho jeho RSVP stále zaraďuje do publika — pripomienka vo fronte pre niekoho, kto minútu nato odmietol, sa zahodí.
- Zlyhaná notifikácia sa nahlási, nikdy sa nevráti do zápisu, ktorý ju spôsobil, a vrátený zápis neodošle nič. Kanál database nikdy neukladá kód pre check-in ani token pozvánky.
- E-mail má predmet s názvom podujatia, oslovenie, riadky textu a jedno tlačidlo — odkaz na prijatie pri invited (events.urls.invitation), odkaz na vstupenku pri confirmed (events.urls.rsvp), odkaz na platbu pri rezervovanom waitlist\_promoted, inak stránku podujatia (events.urls.event); bez URL tlačidlo nie je. Celodenné podujatia ukazujú len dátum.

## Kanál database

toArray() — to, čo ukladá database — sú čisté dáta bez názvov tried:

```json
{
  "type": "rescheduled",
  "event": { "id": "uuid", "title": "Jazz Night", "starts_at": "2026-12-05T20:00:00+01:00", "timezone": "Europe/Bratislava", "all_day": false },
  "previous_starts_at": "2026-11-14T19:00:00+00:00",
  "reason": "The band is ill"
}
```

| Typ | Kľúče navyše |
| --- | --- |
| `invited` | `message` |
| `confirmed` | `rsvp {id, status, guests}` |
| `waitlist_promoted` | `rsvp {id, status}` |
| `reminder` | `offset` |
| `updated` | changed (názvy atribútov) |
| `postponed, cancelled` | `reason` |
| `rescheduled` | `previous_starts_at, reason` |
| `moved_online` | — |

## Zmena notifikácie

```php
// config/events.php
'notifications' => [
    'channels' => ['mail', 'database'],
    'types' => [
        'cancelled' => App\Notifications\EventCancelledWithRefund::class,   // must extend the package's class
        'updated' => false,                                                  // off
    ],
    'audiences' => ['postponed' => ['going', 'held']],
],
```

```php
use Illuminate\Notifications\Messages\MailMessage;
use RoundlyConsulting\Events\Notifications\EventCancelledNotification;

final class EventCancelledWithRefund extends EventCancelledNotification
{
    public function toMail(object $notifiable): MailMessage
    {
        return parent::toMail($notifiable)->line(__('Your ticket is refunded within 5 days.'));
    }
}
```

Trieda, ktorá nie je podtypom triedy balíka, vyhodí výnimku s názvom kľúča a EVENTS\_NOTIFICATIONS=off vypne všetky notifikácie. Texty sú v events::notifications (en, sk) — každý typ má predmet, oslovenie a text plus spoločné riadky — so zástupnými hodnotami :title a :when. V podtriede prepíšte tieto háčiky:

| Háčik | Predvolené |
| --- | --- |
| `toMail(object $notifiable): MailMessage` | Predmet, oslovenie, lines(), action(). |
| `toArray(object $notifiable): array` | type, event, payload() |
| `via(object $notifiable): array` | `events.notifications.channels` |
| `shouldSend(object $notifiable, string $channel): bool` | Kontrola pri doručení — naďalej volajte parent::shouldSend(). |
| `lines() · payload() · action() (protected)` | Riadky textu · extra kľúče typu · \[popis, url\] alebo null. |
| `line(string $key, array $replace = []) · when(?CarbonImmutable $moment = null) (protected)` | Preložený riadok tohto typu · čas v časovom pásme podujatia a jazyku čitateľa. |

## Tiché zápisy

```php
Events::for($event)->silently()->edit()->title(['en' => 'Jazz Night (fixed typo)'])->save();
Events::for($event)->silently()->reschedule('2026-12-05 20:00');
```

Zmeny celého podujatia cez tichý handle — update, postpone, reschedule, cancel, move online — spustia doménové udalosti s príznakom silent, no neodošlú žiadnu notifikáciu. Osobné potvrdenia — potvrdené miesto, posun z listiny, pozvánka — nie sú zmenami celého podujatia a dotknutá osoba ich dostane aj tak. Cez API robí to isté ?notify=0 pri PATCH /events/{event}.

## Pripomienky

```php
// config/events.php — every event
'reminders' => [
    'offsets' => ['P1D', 'PT2H'],     // at most five, each PT5M–P31D
    'max_lateness' => 'PT1H',
    'all_day_at' => '09:00',
],

// one event's own list replaces the config
Events::for($event)->edit()->reminders(['P2D'])->save();
```

- Posuny sú trvania ISO-8601 pred začiatkom, medzi PT5M a P31D a najviac päť — v events.reminders.offsets pre všetky podujatia alebo vo vlastnom ->reminders(\[...\]) podujatia. Nakonfigurovaný zoznam mimo hraníc vyhodí InvalidEventsConfigurationException s názvom kľúča a events:doctor ho ohlási.
- Denná časť posunu je kalendárna aritmetika v časovom pásme podujatia — P1D je deň predtým v rovnakom miestnom čase, pri prechode času 23 alebo 25 hodín skutočného času — a časová časť je absolútna: PT2H sú dve hodiny.
- Celodenné podujatia počítajú od events.reminders.all\_day\_at (09:00 miestneho času) prvého dňa: P1D je 09:00 deň predtým, PT1H 08:00 v deň podujatia.
- Práve raz: events:sweep si každú pripomienku nárokuje vložením (event, offset, starts\_at) do event\_reminder\_deliveries, takže ju ľubovoľný počet súbežných sweepov odošle raz. Presun termínu zmení starts\_at, takže pripomienky sa znova nastavia.
- Preskočí sa posun splatný pred ohlásením aktuálneho harmonogramu — žiadna pripomienka „zajtra“ pre podujatie vytvorené hodinu vopred —, posun oneskorený o viac ako events.reminders.max\_lateness (PT1H), čokoľvek v čase začiatku a po ňom a podujatia, ktoré nie sú naplánované ani presunuté.
- Spustí sa RemindersDispatched(Event, string $offset, int $recipients) a SweepResult počíta reminders a notified.

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/events-for-laravel.md)
