# API: extrák és erőforrások

> Extrák és erőforrások létrehozása, módosítása, lekérése és törlése az API-val.

Ez a fejezet két területet fed le: a szolgáltatásokhoz tartozó extrákat és a foglalható erőforrásokat. 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`.

## Extrák

Az extrák a szolgáltatásokhoz választható kiegészítők. A végpontokkal megadhatod az árukat, az időtartamukat, a mennyiségi korlátot, a fordításokat és a személyenkénti árszabályt.

| Művelet | Metódus | Útvonal |
|---|---|---|
| Extra létrehozása | `POST` | `/extras` |
| Extra módosítása | `POST` | `/extras/{{extra_id}}` |
| Egy extra lekérése | `GET` | `/extras/{{extra_id}}` |
| Extrák listázása | `GET` | `/extras` |
| Extra törlése | `POST` | `/extras/delete/{{extra_id}}` |

### Extra létrehozása

Új extrát hoz létre, és egy szolgáltatáshoz rendeli.

| Tulajdonság | Típus | Kötelező | Leírás |
|---|---|---|---|
| `name` | szöveg | igen | Az extra neve. |
| `price` | tizedes | igen | Az extra ára. |
| `serviceId` | egész | igen | A szolgáltatás azonosítója, amelyhez az extra tartozik. |
| `duration` | egész | nem | Időtartam másodpercben. |
| `description` | szöveg | nem | Az extra leírása. |
| `maxQuantity` | egész | nem | A legnagyobb mennyiség. Alapérték: `1`. |
| `position` | egész | nem | A rendezési pozíció. Alapérték: `1`. |
| `translations` | szöveg | nem | JSON-ként kódolt fordítások. |
| `aggregatedPrice` | logikai | nem | Az ár szorzódjon-e a létszámmal. Alapérték: `false`. |

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/extras' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data '{
  "name": "Mélyápolás",
  "price": 20,
  "duration": 1800,
  "description": "Mélyápoló kezelés a szolgáltatás mellé.",
  "maxQuantity": 1,
  "position": 1,
  "translations": "{\"name\":{\"fr_FR\":\"Soin profond\"}}",
  "aggregatedPrice": false,
  "serviceId": 1
}'
```

A válasz az `extra` objektumban adja vissza a létrehozott extrát.

### Extra módosítása

Az extra adatait módosítja. Csak azt küldd el, amit változtatni akarsz. Az elfogadott mezők megegyeznek a létrehozásnál felsoroltakkal, de mind opcionálisak.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/extras/25' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data '{
  "name": "Mélyápolás plusz",
  "duration": 1800,
  "price": 25,
  "aggregatedPrice": true,
  "serviceId": 1
}'
```

### Extra lekérése és listázása

Egy extra adatait a `GET /extras/{{extra_id}}`, az összes extrát a `GET /extras` útvonal adja vissza. Egyik sem fogad további paramétert.

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

### Extra törlése

Töröl egy extrát, a válasz a törölt extra adatait adja vissza. A kérésnek nincs törzse.

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

## Erőforrások

Az erőforrások foglalható eszközök vagy terek (például egy kezelőszoba). A végpontokkal létrehozhatod őket, megadhatod a darabszámukat és a láthatóságukat, beállíthatod a megosztási szabályokat, és összekapcsolhatod őket szolgáltatásokkal vagy helyszínekkel.

| Művelet | Metódus | Útvonal |
|---|---|---|
| Erőforrás létrehozása | `POST` | `/resources` |
| Erőforrás módosítása | `POST` | `/resources/{{eroforras_id}}` |
| Erőforrások listázása | `GET` | `/resources` |
| Erőforrás törlése | `POST` | `/resources/delete/{{eroforras_id}}` |

### Erőforrás létrehozása

Új erőforrást hoz létre, megadja a darabszámát, és opcionálisan szolgáltatásokhoz vagy helyszínekhez köti, hogy az elérhetőség számításába bekerüljön.

| Tulajdonság | Típus | Kötelező | Leírás |
|---|---|---|---|
| `name` | szöveg | igen | Az erőforrás belső neve. |
| `quantity` | egész | igen | Az erőforrás darabszáma. |
| `shared` | szöveg | nem | A megosztás típusa: `service`, `location` vagy `null`. |
| `status` | szöveg | nem | `visible` vagy `hidden`. Alapérték: `visible`. |
| `entities` | tömb | nem | Az erőforráshoz kötött entitások (`entityId` és `entityType` mezővel). Alapból az összes. |
| `countAdditionalPeople` | logikai | nem | Az erőforrás személyenként vagy időpontonként számít. |

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/resources' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data '{
  "name": "Masszázsszoba",
  "quantity": 2,
  "shared": null,
  "status": "visible",
  "entities": [ { "entityId": 1, "entityType": "service" } ]
}'
```

### Erőforrás módosítása

Az erőforrás adatait módosítja. Csak azt küldd el, amit változtatni akarsz. Az elfogadott mezők megegyeznek a létrehozásnál felsoroltakkal, de mind opcionálisak.

```bash
curl --location 'https://pelda.hu/wp-admin/admin-ajax.php?action=wpamelia_api&call=/api/v1/resources/6' \
--header 'Content-Type: application/json' \
--header 'Amelia: AZ_API_KULCSOD' \
--data '{
  "name": "Nagy masszázsszoba",
  "quantity": 3,
  "shared": null,
  "status": "visible",
  "entities": [ { "entityId": 2, "entityType": "service" } ]
}'
```

### Erőforrások listázása

Az erőforrások listáját és a hozzájuk kötött entitásokat adja vissza. Nincs paramétere.

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

### Erőforrás törlése

Töröl egy erőforrást. A kérésnek nincs törzse.

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