# API: értesítések

> Egyéni értesítések létrehozása és módosítása, sablonok és WhatsApp-sablonok lekérése, SMS-előzmények, ütemezett és kézbesítetlen küldések indítása, tesztlevél és törlés az API-val.

Az értesítések végpontjaival egyéni értesítéseket hozhatsz létre, módosíthatod a sablonokat, lekérheted az értesítéseket és a WhatsApp-sablonokat, megnézheted az SMS-előzményeket, elindíthatod az ütemezett küldéseket, tesztlevelet küldhetsz, és törölhetsz értesítést.

Az API az Elite licenchez tartozik, használatához programozási ismeret kell. A hitelesítés az **Amelia** fejlécben küldött API-kulccsal történik ([részletek](https://hub.hellowp.io/hu/plugins/ameliabooking/fejlesztoknek-api-attekintes/)). Az alap útvonal: `{{az_oldalad_URL-je}}/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1`.

| Művelet | Metódus | Útvonal |
|---|---|---|
| Értesítés létrehozása | `POST` | `/notifications` |
| Értesítés módosítása | `POST` | `/notifications/{{ertesites_id}}` |
| Értesítések és WhatsApp-sablonok lekérése | `GET` | `/notifications` |
| SMS-előzmények lekérése | `GET` | `/notifications/sms/history` |
| Ütemezett értesítések indítása | `GET` | `/notifications/scheduled/send` |
| Kézbesítetlen értesítések küldése | `GET` | `/notifications/undelivered/send` |
| Tesztlevél küldése | `GET` | `/notifications/email/test` |
| Értesítés törlése | `POST` | `/notifications/delete/{{ertesites_id}}` |

## Értesítés létrehozása

Egyéni értesítési sablont hoz létre e-mailhez, SMS-hez vagy WhatsApphoz. A `name` értékének az értesítés típusát leíró mintát kell követnie: `{customer/provider}_{appointment/event/package}_{approved/canceled/pending/rejected}`, például `customer_appointment_approved`.

**Kötelező tulajdonságok**

| Tulajdonság | Típus | Leírás |
|---|---|---|
| `name` | szöveg | Az értesítés kulcsa a fenti formában. |
| `customName` | szöveg | A felületen megjelenő név. |
| `type` | szöveg | `email`, `sms` vagy `whatsapp`. |
| `sendTo` | szöveg | A címzett típusa: `customer` (vásárló) vagy `provider` (munkavállaló). |
| `entity` | szöveg | `appointment` (időpont) vagy `event` (esemény). |
| `subject` | szöveg | Az e-mail tárgya, WhatsApp esetén a fejléc helyőrzői vesszővel elválasztva. |
| `content` | szöveg | Az e-mail szövege, WhatsApp esetén a törzs helyőrzői vesszővel elválasztva. |

**Opcionális tulajdonságok**

| Tulajdonság | Típus | Leírás |
|---|---|---|
| `status` | szöveg | `enabled` vagy `disabled`. Alapérték: `enabled`. |
| `sendOnlyMe` | logikai | Elmenjen-e az alapértelmezett értesítés is. Alapérték: `true`. |
| `time` | szöveg | Az ütemezett küldés időpontja. |
| `timeBefore` | egész | Az időpont vagy esemény előtt hány másodperccel. |
| `timeAfter` | egész | Az időpont vagy esemény után hány másodperccel. |
| `entityIds` | tömb | Szolgáltatás- vagy eseményazonosítók. Alapból az összes. |
| `whatsAppTemplate` | szöveg | A WhatsApp-sablon neve, kötelező, ha a `type` `whatsapp`. |
| `minimumTimeBeforeBooking` | objektum | A foglalás és a kezdés közötti legkisebb idő (`amount` és `period` mezővel). |

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data '{
  "name": "customer_appointment_approved",
  "customName": "Jóváhagyott időpont, egyéni levél",
  "type": "email",
  "sendTo": "customer",
  "entity": "appointment",
  "sendOnlyMe": false,
  "status": "enabled",
  "time": null,
  "timeBefore": null,
  "timeAfter": null,
  "entityIds": [1],
  "subject": "%service_name% időpont megerősítése",
  "content": "<p>Kedves <strong>%customer_full_name%</strong>!</p><p>Az időpontodat jóváhagytuk.</p><p>Köszönjük: <strong>%company_name%</strong></p>",
  "whatsAppTemplate": "",
  "minimumTimeBeforeBooking": null
}'
```

A válasz a `notification` objektumban adja vissza a létrehozott értesítést és az azonosítóját.

## Értesítés módosítása

Egy értesítési sablont módosít. Csak azt küldd el, amit változtatni akarsz. Az elfogadott mezők megegyeznek a létrehozásnál felsoroltakkal (a `status` is), de mind opcionálisak.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications/123' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data '{
  "customName": "Jóváhagyott időpont, frissítve",
  "entityIds": [1, 2]
}'
```

## Értesítések és WhatsApp-sablonok lekérése

Az értesítési sablonokat és az elérhető WhatsApp-sablonokat adja vissza. A válasz `notifications` tömbje az értesítéseket, a `whatsAppTemplates` tömbje a sablonokat tartalmazza (név, nyelv, státusz, kategória, azonosító).

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications' \
--header 'Amelia: AZ_API_KULCSOD'
```

## SMS-előzmények lekérése

Az SMS-értesítések előzményeit adja vissza (azonosító, értesítés, felhasználó, időpont, küldés ideje, státusz, a felhasználó neve). A `countFiltered` a találatok száma.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications/sms/history' \
--header 'Amelia: AZ_API_KULCSOD'
```

## Ütemezett értesítések indítása

Elindítja az ütemezett értesítések kiküldését. Nincs paramétere.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications/scheduled/send' \
--header 'Amelia: AZ_API_KULCSOD'
```

Sikeres futásnál a válasz üzenete: „Scheduled email notifications successfully sent”.

## Kézbesítetlen értesítések küldése

Elindítja a kézbesítetlen értesítések újraküldését. Nincs paramétere.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications/undelivered/send' \
--header 'Amelia: AZ_API_KULCSOD'
```

## Tesztlevél küldése

Tesztlevelet küld a kiválasztott értesítési sablonnal.

| Tulajdonság | Típus | Kötelező | Leírás |
|---|---|---|---|
| `recipientEmail` | szöveg | igen | A címzett e-mail-címe. |
| `notificationTemplate` | egész | igen | Az értesítési sablon azonosítója. |
| `type` | szöveg | igen | `appointment`, `event` vagy `package`. |
| `language` | szöveg | nem | A küldés nyelve. |

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications/email/test' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data-raw '{
  "recipientEmail": "vasarlo@example.com",
  "notificationTemplate": 1,
  "language": null,
  "type": "appointment"
}'
```

## Értesítés törlése

Töröl egy értesítési sablont. A kérésnek nincs törzse, a válasz a törölt értesítés adatait adja vissza.

```bash
curl --location --request POST 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/notifications/delete/123' \
--header 'Amelia: AZ_API_KULCSOD'
```
