Skip to content

Poolia API

Version: 0.1.0

Endpoints

POST /auth/login

Summary: Login

Tags: auth

Operation ID: login_auth_login_post

Request Body

  • Required: Yes
Content-Type Schema
application/json LoginRequest

Responses

Status Content-Type Schema Description
200 application/json TokenResponse Successful Response
422 application/json HTTPValidationError Validation Error

POST /auth/logout

Summary: Logout

Tags: auth

Operation ID: logout_auth_logout_post

Responses

Status Content-Type Schema Description
200 application/json object Successful Response

POST /auth/register

Summary: Register

Tags: auth

Operation ID: register_auth_register_post

Request Body

  • Required: Yes
Content-Type Schema
application/json RegisterRequest

Responses

Status Content-Type Schema Description
200 application/json TokenResponse Successful Response
422 application/json HTTPValidationError Validation Error

POST /device-heartbeats

Summary: Create Device Heartbeat

Tags: device-heartbeats

Operation ID: create_device_heartbeat_device_heartbeats_post

Request Body

  • Required: Yes
Content-Type Schema
application/json DeviceHeartbeatCreate

Responses

Status Content-Type Schema Description
201 application/json DeviceHeartbeat Successful Response
422 application/json HTTPValidationError Validation Error

GET /device-heartbeats/pool/{pool_id}

Summary: List Device Heartbeats By Pool Id

Tags: device-heartbeats

Operation ID: list_device_heartbeats_by_pool_id_device_heartbeats_pool__pool_id__get

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[DeviceHeartbeat] Successful Response
422 application/json HTTPValidationError Validation Error

GET /device-heartbeats/pool/{pool_id}/latest

Summary: Get Latest Device Heartbeat By Pool Id

Tags: device-heartbeats

Operation ID: get_latest_device_heartbeat_by_pool_id_device_heartbeats_pool__pool_id__latest_get

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json DeviceHeartbeat Successful Response
422 application/json HTTPValidationError Validation Error

POST /device-readings

Summary: Ingest Device Reading

Tags: device-readings

Operation ID: ingest_device_reading_device_readings_post

Request Body

  • Required: Yes
Content-Type Schema
application/json DeviceReadingIngestRequest

Responses

Status Content-Type Schema Description
201 application/json DeviceReading Successful Response
422 application/json HTTPValidationError Validation Error

GET /device-readings/device/{device_id}

Summary: List Device Readings By Device Id

Tags: device-readings

Operation ID: list_device_readings_by_device_id_device_readings_device__device_id__get

Parameters

Name In Type Required Description
device_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[DeviceReading] Successful Response
422 application/json HTTPValidationError Validation Error

GET /device-readings/pool/{pool_id}

Summary: List Device Readings By Pool Id

Tags: device-readings

Operation ID: list_device_readings_by_pool_id_device_readings_pool__pool_id__get

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[DeviceReading] Successful Response
422 application/json HTTPValidationError Validation Error

GET /devices/pool/{pool_id}

Summary: Get Device By Pool Id

Tags: devices

Operation ID: get_device_by_pool_id_devices_pool__pool_id__get

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json PoolDevice Successful Response
422 application/json HTTPValidationError Validation Error

GET /devices/{device_id}

Summary: Get Device By Device Id

Tags: devices

Operation ID: get_device_by_device_id_devices__device_id__get

Parameters

Name In Type Required Description
device_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json PoolDevice Successful Response
422 application/json HTTPValidationError Validation Error

GET /devices/{device_id}/pool

Summary: Get Pool For Device

Tags: devices

Operation ID: get_pool_for_device_devices__device_id__pool_get

Parameters

Name In Type Required Description
device_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json DevicePoolResponse Successful Response
422 application/json HTTPValidationError Validation Error

GET /health

Summary: Healthcheck

Operation ID: healthcheck_health_get

Responses

Status Content-Type Schema Description
200 application/json object Successful Response

GET /invites

Summary: List Invites

Tags: invites

Operation ID: list_invites_invites_get

Responses

Status Content-Type Schema Description
200 application/json array[Invite] Successful Response

POST /invites

Summary: Create Invite

Tags: invites

Operation ID: create_invite_invites_post

Request Body

  • Required: Yes
Content-Type Schema
application/json InviteCreate

Responses

Status Content-Type Schema Description
201 application/json Invite Successful Response
422 application/json HTTPValidationError Validation Error

GET /invites/technicians/{technician_id}

Summary: List Invites By Technician

Tags: invites

Operation ID: list_invites_by_technician_invites_technicians__technician_id__get

Parameters

Name In Type Required Description
technician_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[Invite] Successful Response
422 application/json HTTPValidationError Validation Error

GET /invites/technicians/{technician_id}/pending

Summary: List Pending Invites By Technician

Tags: invites

Operation ID: list_pending_invites_by_technician_invites_technicians__technician_id__pending_get

Parameters

Name In Type Required Description
technician_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[Invite] Successful Response
422 application/json HTTPValidationError Validation Error

GET /invites/technicians/{technician_id}/pending/count

Summary: Count Pending Invites By Technician

Tags: invites

Operation ID: count_pending_invites_by_technician_invites_technicians__technician_id__pending_count_get

Parameters

Name In Type Required Description
technician_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json object Successful Response
422 application/json HTTPValidationError Validation Error

POST /invites/{inviteId}/accept

Summary: Accept Invite

Tags: invites

Operation ID: accept_invite_invites__inviteId__accept_post

Parameters

Name In Type Required Description
inviteId path string Yes

Responses

Status Content-Type Schema Description
200 application/json Invite Successful Response
422 application/json HTTPValidationError Validation Error

POST /invites/{inviteId}/decline

Summary: Decline Invite

Tags: invites

Operation ID: decline_invite_invites__inviteId__decline_post

Parameters

Name In Type Required Description
inviteId path string Yes

Responses

Status Content-Type Schema Description
200 application/json Invite Successful Response
422 application/json HTTPValidationError Validation Error

GET /invites/{invite_id}

Summary: Get Invite

Tags: invites

Operation ID: get_invite_invites__invite_id__get

Parameters

Name In Type Required Description
invite_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json Invite Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /invites/{invite_id}

Summary: Update Invite

Tags: invites

Operation ID: update_invite_invites__invite_id__patch

Parameters

Name In Type Required Description
invite_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json InviteUpdate

Responses

Status Content-Type Schema Description
200 application/json Invite Successful Response
422 application/json HTTPValidationError Validation Error

DELETE /invites/{invite_id}

Summary: Delete Invite

Tags: invites

Operation ID: delete_invite_invites__invite_id__delete

Parameters

Name In Type Required Description
invite_id path string Yes

Responses

Status Content-Type Schema Description
204 - - Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /invites/{invite_id}/read

Summary: Mark Invite As Read

Tags: invites

Operation ID: mark_invite_as_read_invites__invite_id__read_patch

Parameters

Name In Type Required Description
invite_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json Invite Successful Response
422 application/json HTTPValidationError Validation Error

GET /messages/{message_id}

Summary: Get Message

Tags: messages

Operation ID: get_message_messages__message_id__get

Parameters

Name In Type Required Description
message_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json MessageResponse Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /messages/{message_id}

Summary: Update Message

Tags: messages

Operation ID: update_message_messages__message_id__patch

Parameters

Name In Type Required Description
message_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json MessageUpdate

Responses

Status Content-Type Schema Description
200 application/json MessageResponse Successful Response
422 application/json HTTPValidationError Validation Error

GET /photos/pools/{pool_id}

Summary: Get Pool Photo

Tags: photos

Operation ID: get_pool_photo_photos_pools__pool_id__get

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json PhotoResponse Successful Response
422 application/json HTTPValidationError Validation Error

POST /photos/pools/{pool_id}

Summary: Upload Pool Photo

Tags: photos

Operation ID: upload_pool_photo_photos_pools__pool_id__post

Parameters

Name In Type Required Description
pool_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
multipart/form-data Body_upload_pool_photo_photos_pools__pool_id__post

Responses

Status Content-Type Schema Description
200 application/json PhotoResponse Successful Response
422 application/json HTTPValidationError Validation Error

GET /photos/users/{user_id}/profile

Summary: Get User Profile Photo

Tags: photos

Operation ID: get_user_profile_photo_photos_users__user_id__profile_get

Parameters

Name In Type Required Description
user_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json PhotoResponse Successful Response
422 application/json HTTPValidationError Validation Error

POST /photos/users/{user_id}/profile

Summary: Upload User Profile Photo

Tags: photos

Operation ID: upload_user_profile_photo_photos_users__user_id__profile_post

Parameters

Name In Type Required Description
user_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
multipart/form-data Body_upload_user_profile_photo_photos_users__user_id__profile_post

Responses

Status Content-Type Schema Description
201 application/json PhotoResponse Successful Response
422 application/json HTTPValidationError Validation Error

GET /photos/visits/{visit_id}

Summary: List Visit Photos

Tags: photos

Operation ID: list_visit_photos_photos_visits__visit_id__get

Parameters

Name In Type Required Description
visit_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[PhotoResponse] Successful Response
422 application/json HTTPValidationError Validation Error

POST /photos/visits/{visit_id}

Summary: Upload Visit Photo

Tags: photos

Operation ID: upload_visit_photo_photos_visits__visit_id__post

Parameters

Name In Type Required Description
visit_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
multipart/form-data Body_upload_visit_photo_photos_visits__visit_id__post

Responses

Status Content-Type Schema Description
201 application/json PhotoResponse Successful Response
422 application/json HTTPValidationError Validation Error

DELETE /photos/{photo_id}

Summary: Delete Photo

Tags: photos

Operation ID: delete_photo_photos__photo_id__delete

Parameters

Name In Type Required Description
photo_id path string Yes

Responses

Status Content-Type Schema Description
204 - - Successful Response
422 application/json HTTPValidationError Validation Error

GET /pool-values

Summary: List Pool Values

Tags: pool-values

Operation ID: list_pool_values_pool_values_get

Responses

Status Content-Type Schema Description
200 application/json array[PoolValues] Successful Response

POST /pool-values

Summary: Create Pool Values

Tags: pool-values

Operation ID: create_pool_values_pool_values_post

Request Body

  • Required: Yes
Content-Type Schema
application/json PoolValuesCreate

Responses

Status Content-Type Schema Description
201 application/json PoolValues Successful Response
422 application/json HTTPValidationError Validation Error

GET /pool-values/{pool_values_id}

Summary: Get Pool Values

Tags: pool-values

Operation ID: get_pool_values_pool_values__pool_values_id__get

Parameters

Name In Type Required Description
pool_values_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json PoolValues Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /pool-values/{pool_values_id}

Summary: Update Pool Values

Tags: pool-values

Operation ID: update_pool_values_pool_values__pool_values_id__patch

Parameters

Name In Type Required Description
pool_values_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json PoolValuesUpdate

Responses

Status Content-Type Schema Description
200 application/json PoolValues Successful Response
422 application/json HTTPValidationError Validation Error

DELETE /pool-values/{pool_values_id}

Summary: Delete Pool Values

Tags: pool-values

Operation ID: delete_pool_values_pool_values__pool_values_id__delete

Parameters

Name In Type Required Description
pool_values_id path string Yes

Responses

Status Content-Type Schema Description
204 - - Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools

Summary: List Pools

Tags: pools

Operation ID: list_pools_pools_get

Parameters

Name In Type Required Description
ownerId query string | null No

Responses

Status Content-Type Schema Description
200 application/json array[Pool] Successful Response
422 application/json HTTPValidationError Validation Error

POST /pools

Summary: Create Pool

Tags: pools

Operation ID: create_pool_pools_post

Request Body

  • Required: Yes
Content-Type Schema
application/json PoolCreate

Responses

Status Content-Type Schema Description
201 application/json Pool Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/technician/{tech_id}

Summary: List Pools By Technician

Tags: pools

Operation ID: list_pools_by_technician_pools_technician__tech_id__get

Parameters

Name In Type Required Description
tech_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[Pool] Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/user/{user_id}

Summary: List Pools By Owner

Tags: pools

Operation ID: list_pools_by_owner_pools_user__user_id__get

Parameters

Name In Type Required Description
user_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[Pool] Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/{poolId}/dashboard

Summary: Get Pool Dashboard

Tags: pools

Operation ID: get_pool_dashboard_pools__poolId__dashboard_get

Parameters

Name In Type Required Description
poolId path string Yes

Responses

Status Content-Type Schema Description
200 application/json PoolDashboardResponse Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/{poolId}/poolia-dashboard

Summary: Get Poolia Dashboard

Tags: pools

Operation ID: get_poolia_dashboard_pools__poolId__poolia_dashboard_get

Parameters

Name In Type Required Description
poolId path string Yes

Responses

Status Content-Type Schema Description
200 application/json PooliaDashboardResponse Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/{poolId}/visits

Summary: List Pool Visits

Tags: pools

Operation ID: list_pool_visits_pools__poolId__visits_get

Parameters

Name In Type Required Description
poolId path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[Visit] Successful Response
422 application/json HTTPValidationError Validation Error

POST /pools/{poolId}/visits

Summary: Create Pool Visit

Tags: pools

Operation ID: create_pool_visit_pools__poolId__visits_post

Parameters

Name In Type Required Description
poolId path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json CreatePoolVisitRequest

Responses

Status Content-Type Schema Description
201 application/json object Successful Response
422 application/json HTTPValidationError Validation Error

POST /pools/{poolId}/visits/poolia

Summary: Create Poolia Visit

Tags: pools

Operation ID: create_poolia_visit_pools__poolId__visits_poolia_post

Parameters

Name In Type Required Description
poolId path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json CreatePooliaVisitRequest

Responses

Status Content-Type Schema Description
201 application/json Visit Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/{pool_id}

Summary: Get Pool

Tags: pools

Operation ID: get_pool_pools__pool_id__get

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json Pool Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /pools/{pool_id}

Summary: Update Pool

Tags: pools

Operation ID: update_pool_pools__pool_id__patch

Parameters

Name In Type Required Description
pool_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json PoolUpdate

Responses

Status Content-Type Schema Description
200 application/json Pool Successful Response
422 application/json HTTPValidationError Validation Error

DELETE /pools/{pool_id}

Summary: Delete Pool

Tags: pools

Operation ID: delete_pool_pools__pool_id__delete

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
204 - - Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/{pool_id}/alert-config

Summary: Get Alert Config

Tags: pools

Operation ID: get_alert_config_pools__pool_id__alert_config_get

Parameters

Name In Type Required Description
pool_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json AlertConfig Successful Response
422 application/json HTTPValidationError Validation Error

PUT /pools/{pool_id}/alert-config

Summary: Upsert Alert Config

Tags: pools

Operation ID: upsert_alert_config_pools__pool_id__alert_config_put

Parameters

Name In Type Required Description
pool_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json AlertConfigUpsert

Responses

Status Content-Type Schema Description
200 application/json AlertConfig Successful Response
422 application/json HTTPValidationError Validation Error

POST /pools/{pool_id}/devices/pair

Summary: Pair Device To Pool

Tags: pools

Operation ID: pair_device_to_pool_pools__pool_id__devices_pair_post

Parameters

Name In Type Required Description
pool_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json PoolDevicePairBody

Responses

Status Content-Type Schema Description
201 application/json PoolDevicePairResponse Successful Response
422 application/json HTTPValidationError Validation Error

POST /pools/{pool_id}/invites

Summary: Invite Technician By Email

Tags: pools

Operation ID: invite_technician_by_email_pools__pool_id__invites_post

Parameters

Name In Type Required Description
pool_id path string Yes
ownerId query string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json InviteByEmailRequest

Responses

Status Content-Type Schema Description
201 application/json Invite Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /pools/{pool_id}/nickname

Summary: Update Pool Nickname

Tags: pools

Operation ID: update_pool_nickname_pools__pool_id__nickname_patch

Parameters

Name In Type Required Description
pool_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json PoolNicknameUpdate

Responses

Status Content-Type Schema Description
200 application/json Pool Successful Response
422 application/json HTTPValidationError Validation Error

DELETE /pools/{pool_id}/technicians/{technician_id}

Summary: Remove Pool Technician

Tags: pools

Operation ID: remove_pool_technician_pools__pool_id__technicians__technician_id__delete

Parameters

Name In Type Required Description
pool_id path string Yes
technician_id path string Yes

Responses

Status Content-Type Schema Description
204 - - Successful Response
422 application/json HTTPValidationError Validation Error

GET /pools/{pool_id}/threads

Summary: List Threads

Tags: messages

Operation ID: list_threads_pools__pool_id__threads_get

Parameters

Name In Type Required Description
pool_id path string Yes
status query string | null No

Responses

Status Content-Type Schema Description
200 application/json array[MessageThreadListItem] Successful Response
422 application/json HTTPValidationError Validation Error

POST /pools/{pool_id}/threads

Summary: Create Thread

Tags: messages

Operation ID: create_thread_pools__pool_id__threads_post

Parameters

Name In Type Required Description
pool_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json MessageThreadCreate

Responses

Status Content-Type Schema Description
201 application/json MessageThread Successful Response
422 application/json HTTPValidationError Validation Error

GET /threads/{thread_id}

Summary: Get Thread

Tags: messages

Operation ID: get_thread_threads__thread_id__get

Parameters

Name In Type Required Description
thread_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json MessageThread Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /threads/{thread_id}

Summary: Update Thread

Tags: messages

Operation ID: update_thread_threads__thread_id__patch

Parameters

Name In Type Required Description
thread_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json MessageThreadUpdate

Responses

Status Content-Type Schema Description
200 application/json MessageThread Successful Response
422 application/json HTTPValidationError Validation Error

GET /threads/{thread_id}/messages

Summary: List Messages

Tags: messages

Operation ID: list_messages_threads__thread_id__messages_get

Parameters

Name In Type Required Description
thread_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json array[MessageResponse] Successful Response
422 application/json HTTPValidationError Validation Error

POST /threads/{thread_id}/messages

Summary: Create Message

Tags: messages

Operation ID: create_message_threads__thread_id__messages_post

Parameters

Name In Type Required Description
thread_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json MessageCreate

Responses

Status Content-Type Schema Description
201 application/json MessageResponse Successful Response
422 application/json HTTPValidationError Validation Error

POST /threads/{thread_id}/messages/{message_id}/photos

Summary: Upload Message Photo

Tags: messages

Operation ID: upload_message_photo_threads__thread_id__messages__message_id__photos_post

Parameters

Name In Type Required Description
thread_id path string Yes
message_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
multipart/form-data Body_upload_message_photo_threads__thread_id__messages__message_id__photos_post

Responses

Status Content-Type Schema Description
201 application/json MessageResponse Successful Response
422 application/json HTTPValidationError Validation Error

GET /users

Summary: List Users

Tags: users

Operation ID: list_users_users_get

Responses

Status Content-Type Schema Description
200 application/json array[User] Successful Response

POST /users

Summary: Create User

Tags: users

Operation ID: create_user_users_post

Request Body

  • Required: Yes
Content-Type Schema
application/json UserCreate

Responses

Status Content-Type Schema Description
201 application/json User Successful Response
422 application/json HTTPValidationError Validation Error

GET /users/me

Summary: Get Me

Tags: users

Operation ID: get_me_users_me_get

Responses

Status Content-Type Schema Description
200 application/json User Successful Response

POST /users/me/change-password

Summary: Change My Password

Tags: users

Operation ID: change_my_password_users_me_change_password_post

Request Body

  • Required: Yes
Content-Type Schema
application/json ChangePasswordRequest

Responses

Status Content-Type Schema Description
200 application/json object Successful Response
422 application/json HTTPValidationError Validation Error

GET /users/{user_id}

Summary: Get User

Tags: users

Operation ID: get_user_users__user_id__get

Parameters

Name In Type Required Description
user_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json User Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /users/{user_id}

Summary: Update User

Tags: users

Operation ID: update_user_users__user_id__patch

Parameters

Name In Type Required Description
user_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json UserUpdate

Responses

Status Content-Type Schema Description
200 application/json User Successful Response
422 application/json HTTPValidationError Validation Error

DELETE /users/{user_id}

Summary: Soft Delete User

Tags: users

Operation ID: soft_delete_user_users__user_id__delete

Parameters

Name In Type Required Description
user_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json object Successful Response
422 application/json HTTPValidationError Validation Error

GET /visits

Summary: List Visits

Tags: visits

Operation ID: list_visits_visits_get

Responses

Status Content-Type Schema Description
200 application/json array[Visit] Successful Response

POST /visits

Summary: Create Visit

Tags: visits

Operation ID: create_visit_visits_post

Request Body

  • Required: Yes
Content-Type Schema
application/json VisitCreate

Responses

Status Content-Type Schema Description
201 application/json Visit Successful Response
422 application/json HTTPValidationError Validation Error

GET /visits/{visit_id}

Summary: Get Visit

Tags: visits

Operation ID: get_visit_visits__visit_id__get

Parameters

Name In Type Required Description
visit_id path string Yes

Responses

Status Content-Type Schema Description
200 application/json Visit Successful Response
422 application/json HTTPValidationError Validation Error

PATCH /visits/{visit_id}

Summary: Update Visit

Tags: visits

Operation ID: update_visit_visits__visit_id__patch

Parameters

Name In Type Required Description
visit_id path string Yes

Request Body

  • Required: Yes
Content-Type Schema
application/json VisitUpdate

Responses

Status Content-Type Schema Description
200 application/json Visit Successful Response
422 application/json HTTPValidationError Validation Error

DELETE /visits/{visit_id}

Summary: Delete Visit

Tags: visits

Operation ID: delete_visit_visits__visit_id__delete

Parameters

Name In Type Required Description
visit_id path string Yes

Responses

Status Content-Type Schema Description
204 - - Successful Response
422 application/json HTTPValidationError Validation Error

Schemas

AlertConfig

Field Type Required Description
_id string | null No MongoDB document ObjectID
poolId string Yes
phMin number Yes
phMax number Yes
chlorineMin number | null No
chlorineMax number | null No
orpMin number | null No
orpMax number | null No
temperatureMin number Yes
temperatureMax number Yes
createdAt string No
updatedAt string No

AlertConfigUpsert

Field Type Required Description
phMin number Yes
phMax number Yes
chlorineMin number | null No
chlorineMax number | null No
orpMin number | null No
orpMax number | null No
temperatureMin number Yes
temperatureMax number Yes

Body_upload_message_photo_threads__thread_id__messages__message_id__photos_post

Field Type Required Description
file string Yes
description string | null No

Body_upload_pool_photo_photos_pools__pool_id__post

Field Type Required Description
file string Yes
uploaded_by string | null No
description string | null No

Body_upload_user_profile_photo_photos_users__user_id__profile_post

Field Type Required Description
file string Yes
uploaded_by string | null No
description string | null No

Body_upload_visit_photo_photos_visits__visit_id__post

Field Type Required Description
file string Yes
uploaded_by string | null No
description string | null No

ChangePasswordRequest

Field Type Required Description
currentPassword string Yes
newPassword string Yes

CreatePoolVisitRequest

Field Type Required Description
technicianId string Yes
ph number Yes
chlorine number Yes
temperature number Yes
isOk boolean Yes
actions string Yes
problem string | null No
status string No
observations string | null No

CreatePooliaVisitRequest

Field Type Required Description
technicianId string Yes
isOk boolean Yes
actions string Yes
problem string | null No
status string No
observations string | null No

DeviceHeartbeat

Field Type Required Description
_id string | null No MongoDB document ObjectID
device_id string Yes
pool_id string Yes
timestamp string Yes
status string | null No
fw_version string | null No
metrics DeviceHeartbeatMetrics Yes

DeviceHeartbeatConnectivity

Field Type Required Description
type string Yes
rssi_dbm integer | null No
carrier string | null No
ip string | null No

DeviceHeartbeatConnectivityIn

Field Type Required Description
type string Yes
rssi_dbm integer | null No
carrier string | null No
ip string | null No

DeviceHeartbeatCreate

Field Type Required Description
device_id string Yes
pool_id string Yes
timestamp string Yes
status string | null No
fw_version string | null No
metrics DeviceHeartbeatMetricsIn Yes

DeviceHeartbeatMetrics

Field Type Required Description
uptime_s integer Yes
free_disk_mb integer Yes
cpu_temp_c number Yes
pending_readings integer Yes
last_reading_at string | null No
last_upload_at string | null No
last_upload_error string | null No
connectivity DeviceHeartbeatConnectivity | null No

DeviceHeartbeatMetricsIn

Field Type Required Description
uptime_s integer Yes
free_disk_mb integer Yes
cpu_temp_c number Yes
pending_readings integer Yes
last_reading_at string | null No
last_upload_at string | null No
last_upload_error string | null No
connectivity DeviceHeartbeatConnectivityIn | null No

DevicePoolResponse

Field Type Required Description
deviceId string Yes
poolId string Yes
status string Yes
pairedAt string Yes

DeviceReading

Field Type Required Description
_id string | null No MongoDB document ObjectID
deviceId string Yes
poolId string Yes
readingId string Yes
timestamp string Yes
measurements DeviceReadingMeasurements Yes
sensorStatus DeviceReadingSensorStatus Yes

DeviceReadingDeviceIn

Field Type Required Description
device_id string Yes
fw_version string | null No
sensor_status DeviceReadingSensorStatusIn Yes

DeviceReadingIngestRequest

Field Type Required Description
pool_id string Yes
reading_id string Yes
timestamp string Yes
measurements DeviceReadingMeasurementsIn Yes
device DeviceReadingDeviceIn Yes

DeviceReadingMeasurements

Field Type Required Description
ph number Yes
orpMv number Yes
temperatureC number Yes

DeviceReadingMeasurementsIn

Field Type Required Description
ph number Yes
orp_mv number Yes
temperature_c number Yes

DeviceReadingSensorStatus

Field Type Required Description
ph string Yes
orp string Yes
rtd string Yes

DeviceReadingSensorStatusIn

Field Type Required Description
ph string Yes
orp string Yes
rtd string Yes

HTTPValidationError

Field Type Required Description
detail array[ValidationError] No

Invite

Field Type Required Description
_id string | null No MongoDB document ObjectID
ownerId string Yes
technicianId string Yes
poolId string Yes
status string No
isRead boolean No
createdAt string No
respondedAt string | null No
expiresAt string | null No

InviteByEmailRequest

Field Type Required Description
technicianEmail string Yes

InviteCreate

Field Type Required Description
ownerId string Yes
technicianId string Yes
poolId string Yes
status string No
isRead boolean | null No
createdAt string | null No
respondedAt string | null No
expiresAt string | null No

InviteUpdate

Field Type Required Description
ownerId string | null No
technicianId string | null No
poolId string | null No
status string | null No
isRead boolean | null No
createdAt string | null No
respondedAt string | null No
expiresAt string | null No

LoginRequest

Field Type Required Description
email string Yes
password string Yes

MessageCreate

Field Type Required Description
messageType string Yes
body string Yes
replyToMessageId string | null No

MessageResponse

Field Type Required Description
id string Yes
threadId string Yes
poolId string Yes
authorId string Yes
authorRole string Yes
messageType string Yes
body string Yes
replyToMessageId string | null No
createdAt string Yes
updatedAt string | null No
photos array[PhotoResponse] No

MessageThread

Field Type Required Description
_id string | null No MongoDB document ObjectID
poolId string Yes
createdBy string Yes
createdByRole string Yes
subject string Yes
status string No
visitId string | null No
lastMessageAt string No
lastMessagePreview string | null No
lastMessageAuthorId string | null No
lastMessageAuthorRole string | null No
lastMessageType string | null No
createdAt string No
updatedAt string No

MessageThreadCreate

Field Type Required Description
subject string Yes
messageType string Yes
body string Yes
visitId string | null No

MessageThreadListItem

Field Type Required Description
id string Yes
poolId string Yes
createdBy string Yes
createdByRole string Yes
subject string Yes
status string Yes
visitId string | null No
lastMessageAt string Yes
lastMessagePreview string | null No
lastMessageAuthorId string | null No
lastMessageAuthorRole string | null No
lastMessageType string | null No
createdAt string Yes
updatedAt string Yes
messageCount integer Yes

MessageThreadUpdate

Field Type Required Description
subject string | null No
status string | null No

MessageUpdate

Field Type Required Description
body string Yes

PhotoResponse

Field Type Required Description
id string Yes
fileName string Yes
blobPath string Yes
contentType string Yes
size integer Yes
userId string | null No
visitId string | null No
poolId string | null No
threadId string | null No
messageId string | null No
uploadedBy string | null No
createdAt string Yes
description string | null No
url string Yes

Pool

Field Type Required Description
_id string | null No MongoDB document ObjectID
ownerId string Yes Ref User owner
deviceId string | null No Id del dispositivo asociado
name string Yes Nombre de la piscina
nickname string | null No Nombre corto de la piscina
location object Yes Ubicación geográfica de la piscina
volume number | null No Volumen de la piscina
depth number | null No Profundidad de la piscina
poolType string Yes
technicianIds array[string] No
createdAt string No
updatedAt string No

PoolCreate

Field Type Required Description
ownerId string Yes
deviceId string | null No
name string Yes
nickname string | null No
location PoolLocation Yes
volume number | null No
depth number | null No
poolType string Yes
technicianIds array[string] | null No
createdAt string | null No
updatedAt string | null No

PoolDashboardResponse

Field Type Required Description
ownerEmail string No
technicianEmail string | null No
poolName string No
poolNickname string | null No
poolLocation PoolLocation | null No
poolVolume number | null No
poolDepth number | null No
lastVisitDate string | null No
isPoolOk boolean | null No
observations string | null No
ph number | null No
chlorine number | null No
temperature number | null No

PoolDevice

Field Type Required Description
_id string | null No MongoDB document ObjectID
deviceId string Yes
poolId string Yes
status string Yes
pairedAt string No

PoolDevicePairBody

Field Type Required Description
deviceId string Yes

PoolDevicePairResponse

Field Type Required Description
_id string Yes
deviceId string Yes
poolId string Yes
pairedAt string Yes

PoolLocation

Field Type Required Description
address string Yes
lat number Yes
lng number Yes

PoolNicknameUpdate

Field Type Required Description
technicianId string Yes
nickname string | null No

PoolUpdate

Field Type Required Description
ownerId string | null No
deviceId string | null No
name string | null No
nickname string | null No
location PoolLocation | null No
volume number | null No
depth number | null No
poolType string | null No
technicianIds array[string] | null No

PoolValues

Field Type Required Description
_id string | null No MongoDB document ObjectID
poolId string Yes
ph number | null No
chlorine number | null No
temperature number | null No
isOk boolean Yes
createdAt string No

PoolValuesCreate

Field Type Required Description
poolId string Yes
ph number | null No
chlorine number | null No
temperature number | null No
isOk boolean Yes
createdAt string | null No

PoolValuesUpdate

Field Type Required Description
poolId string | null No
ph number | null No
chlorine number | null No
temperature number | null No
isOk boolean | null No
createdAt string | null No

PooliaDashboardResponse

Field Type Required Description
ownerEmail string No
technicianEmail string | null No
poolName string No
poolNickname string | null No
poolLocation PoolLocation | null No
poolVolume number | null No
poolDepth number | null No
lastVisitDate string | null No
isPoolOk boolean | null No
observations string | null No
ph number | null No
orp number | null No
temperature number | null No
phSensorStatus string | null No
orpSensorStatus string | null No
temperatureSensorStatus string | null No

RegisterRequest

Field Type Required Description
name string Yes
lastName string Yes
email string Yes
password string Yes
role object No

TokenResponse

Field Type Required Description
access_token string Yes
token_type string No

User

Field Type Required Description
_id string | null No MongoDB document ObjectID
name string Yes Nombre
lastName string Yes Apellido
email string Yes Correo único
passwordHash string | null No Hash de contraseña
role object No Rol del usuario
status object No Estado del usuario
createdAt string No
lastLoginAt string | null No Último login
deletedAt string | null No Fecha de borrado lógico

UserCreate

Field Type Required Description
name string Yes
lastName string Yes
email string Yes
passwordHash string Yes
role object No
status object No
lastLoginAt string | null No

UserRole

Type: string

UserStatus

Type: string

UserUpdate

Field Type Required Description
name string | null No
lastName string | null No
email string | null No
passwordHash string | null No
role UserRole | null No
status UserStatus | null No
lastLoginAt string | null No

ValidationError

Field Type Required Description
loc array[string | integer] Yes
msg string Yes
type string Yes

Visit

Field Type Required Description
_id string | null No MongoDB document ObjectID
date string Yes
technicianId string Yes
poolId string Yes
poolValueId string | null No
isPoolOk boolean | null No
isOk boolean | null No
actions string | null No
problem string | null No
status string No
observations string | null No

VisitCreate

Field Type Required Description
date string Yes
technicianId string Yes
poolId string Yes
poolValueId string Yes
isPoolOk boolean Yes
observations string | null No

VisitUpdate

Field Type Required Description
date string | null No
technicianId string | null No
poolId string | null No
poolValueId string | null No
isPoolOk boolean | null No
observations string | null No