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 |
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 |
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 |
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}/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 |
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}/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 |
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 |
Yes | |
chlorineMax |
number |
Yes | |
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 |
Yes | |
chlorineMax |
number |
Yes | |
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 |
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 | |
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 | |
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 | |
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 |
name |
string |
Yes | Nombre 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 | |
name |
string |
Yes | |
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 | |
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 |
PoolLocation
| Field | Type | Required | Description |
|---|---|---|---|
address |
string |
Yes | |
lat |
number |
Yes | |
lng |
number |
Yes |
PoolUpdate
| Field | Type | Required | Description |
|---|---|---|---|
ownerId |
string | null |
No | |
name |
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 |
Yes | |
chlorine |
number |
Yes | |
temperature |
number |
Yes | |
isOk |
boolean |
Yes | |
createdAt |
string |
No |
PoolValuesCreate
| Field | Type | Required | Description |
|---|---|---|---|
poolId |
string |
Yes | |
ph |
number |
Yes | |
chlorine |
number |
Yes | |
temperature |
number |
Yes | |
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 |
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 |