# Booker API endoints
## Search/Homepage search
### info
Biblioteka: https://github.com/FriendsOfSymfony/FOSElasticaBundle
Komendy elasticsearch:
booker:search:daychange
fos:elastica:populate
### Homepage boxy
Wszystkie endpointy zwracają na sztywno do 9 wyników, które można dodatkowo konfigurować/filtrować wg:
1. lokalizacji
```
lat=<szerokość geo>&lon=<długość geo>&location_label=<miasto,województwo,kraj>
```
przy czym województwo i kraj są opcjonalne ale jeśli nie puste to separujemy przecinkiem
2. fazie:
... będącej przedewszystkim branżą lub ostatecznie tekstem w opisie salonu, zgodność z branżą będzie pozycjonowana wyżej niż zgodność z opisem
```
scrap=<fraza>
```
#### 1.1 Recomended
```
GET /api/feed/salon/promoted
```
#### 1.2 Najwyżej oceniane
```
GET /api/feed/salon/best
```
Np.: Najwyżej oceniani Wrocław
```
GET /api/feed/salon/best?lat=51.107883&lon=17.038538&location_label =Wrocław
```
#### 1.3 Ostatnio dodane
```
GET /api/feed/salon/latest
```
Np.: Nowe salony w Gdańsku
```
/api/feed/salon/latest?lat=54.348291&lon=18.654023&location_label=Gdańsk
```
Np.: Nowe salony świadczące Fryzjerswo męskie w Gdańsku
```
/api/feed/salon/latest?scrap=Fryzjer+m%C4%99ski&lat=54.348291&lon=18.654023&location_label=Gda%C5%84sk,%20wojew%C3%B3dztwo%20pomorskie,%20Polska
```
#### 1.4 Uproszczone ogólne szybkie szukanie
Zastępuje ~~/api/core/salon/livesearch~~
Uproszczone wyszukiwanie salonów wg. kategorii i lokalizacji pasujących do frazy.
```
GET /api/feed/salon/?scrap=<fraza>
```
Np.: Barberzy w Gdańsku
```
/api/feed/salon/livesearch?scrap=Barber&lat=54.348291&lon=18.654023&location_label=Gdańsk
```
### Wyszukiwarka główna
Endpoint do wyszukiwania:
```
GET /api/search/
```
filtry (jeden z trzech : `scrap`, `lat`=&`lon`=, `location_label` jest obowiązkowy):
`scrap` - fraza będąca kategorią, branżą, usługą, nazwą firmy/salonu
`lat`=<szerokość geo>&`lon`=<długość geo> - geo lokalizacja precyzująca szukanie, pomaga uniknąć niejednoznaczności w nazwie miejscowości
np.: lat=54.348291&lon=18.654023
[opcja] `radius` - promień od wybranej lokalizacji w km, domyśłnie 20km, możliwe wartości : '5km', '10km', '15km', '20km', '25km', '50km'
`location_label`=<miasto>,<województwo>,<kraj> - nazwa miejscowości z opcjonalną dodatkową informacją o województwie i kraju
[opcja] `start` - szukaj wolnych terminów dnia i opcjonalnie godziny z minutami (ISO 8601),np.: 2023-08-21T00:00, 2023-08-22T14:00
[opcja] `end` - szukaj wolnych termniów do (ISO 8601),np.: 2023-08-21T00:00, 2023-08-22T14:00
[opcja] `priceMin`, np. 99.89
[opcja] `priceMax`
[opcja] `isRestricted`=true - pokaż tylko salony z rezerwacją online
[opcja] `sort` - sortuj po jakości dopasowania ("rating-best") lub najbliższych względem wskazanej lokalizacji ("location-close")
[opcja] `item_per_page` - ilość wyników per strona, max 100
Result:
nowe pole z datą najbliższego wolnego terminu
``` "firstAvailableSpot": "2023-08-24T11:45" ```
```json
{
"result": {
"salons": {
"results": [
{
"uuid": "9e680256-8d41-39db-9eb4-d5be69bad3a3",
"slug": "gabinet-kosmetyczny-besza",
"location": {
"lat": 54.390814,
"lon": 18.609648
},
"address": "Żwirki I Wigury 4, 80-463 Gdańsk, województwo pomorskie, Polska",
"name": "Gabinet kosmetyczny BESZA ",
"rating": 5.0,
"ratingCount": 42,
"mainPhoto": {
"publicDir": "https://api.wpadaj.pl/upload/photos/2e05516ea306c2e90a281db2fee3442af13effba.jpg.webp"
},
"services": [
{
"id": 4737739,
"name": "Henna brwi",
"nameWithVariant": "Henna brwi",
"duration": 10,
"description": "",
"priceMin": 3000.0,
"priceMax": 3000.0,
"priceLabel": "30,00",
"priceLabelWithCurrency": "30,00 zł"
}
],
"isPromoted": false,
"isVip": false,
"servicesAmount": 73,
"isRestricted": false,
"phone": "662120800",
"firstAvailableSpot": "2023-08-24T11:45"
}
],
"total": 1
},
"cards": {
"results": [],
"total": 0
}
},
"request": {
"scrap": "Fryzjer męski",
"location": {
"lat": 54.348291,
"lon": 18.654023
},
"radius": "25km",
"period": {},
"sort": "location-close"
},
"pagination": {
"pageNum": 1,
"itemsPerPage": 1,
"allPlsFlag": 0,
"isActive": false
}
}
```