На фреймворке Nest.js (https://nestjs.com/) реализовать HTTP REST сервер, работающий с СУБД PostgreSQL через ORM TypeOrm (https://typeorm.io).
Есть охотники (hunter) и егеря(guide). Егеря используют систему, чтобы выложить свои предложения (offer) по организации охоты (hunt). Охотники используют систему, чтобы найти подходящее для себя предложение егеря.
- авторизация по номеру телефона
- эндпоинт /offers (предложения)
- GET — список всех предложений
- GET /:id — конкретное предложение по иденттификатору
- POST — создание нового предложения (егерь создает новое предложение чтобы его видели охотники)
- PUT /:id — обновление предложения
- DELETE /:id — удаление предложения
- эндпоинт /bookings (бронь)
- GET /:id — получить информацию о брони
- POST — забронировать охоту (охотник бронирует охоту соглашаясь с каким-то offer)
- DELETE /:id — удалить бронь охоты
- Offer (предложение)
- id
- dateStart — дата начала охоты
- dateEnd — дата конца охоты
- description — описание
- latitude — широта
- longitude — долгота
- guideId — идентификатор егеря
- dateCreated — дата создания
- dateUpdated — дата обновления
- Fowl (дичь)
- id
- name — название
- class — вид (пушнина, копытные, птицы)
- image — аватарка
- dateCreated — дата создания
- dateUpdated — дата обновления
- Hunt (охота)
- id
- offerId — идентификатор предложения
- fowlId — идентификатор дичи
- dayPrice — стоимость за 1 день
- licencePrice — стоимость лицензии
- Booking (бронь)
- id
- huntId — идентификатор охоты
- hunterId — идентификатор охотника
- confirmed — подтверждена егерем или нет
- dateCreated — дата создания
- dateUpdated — дата обновления
- User (пользователь)
- id
- type — тип пользователя (охотник, егерь, админ)
- phone — номер телефона
- email — адрес электронной почты
- dateCreated — дата создания
- dateUpdated — дата обновления