You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

3031 lines
76 KiB

openapi: 3.0.3
info:
title: API سامانه تعاملات بین‌الملل
version: 2.0.0
description: مستندات نقاط پایانی سامانه تعاملات بین‌الملل آستان قدس رضوی (فاز دوم)
paths:
/api/v1/account/admin/directory-users/:
get:
operationId: v1_account_admin_directory_users_list
description: |-
Separate, dedicated endpoint for accounts/users list page.
Filters users who have an email, are not deleted (deleted_at is null).
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedAdminUserList'
description: ''
post:
operationId: v1_account_admin_directory_users_create
description: |-
Separate, dedicated endpoint for accounts/users list page.
Filters users who have an email, are not deleted (deleted_at is null).
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminUserRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
/api/v1/account/admin/directory-users/{id}/:
get:
operationId: v1_account_admin_directory_users_retrieve
description: |-
Separate, dedicated endpoint for accounts/users list page.
Filters users who have an email, are not deleted (deleted_at is null).
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
put:
operationId: v1_account_admin_directory_users_update
description: |-
Separate, dedicated endpoint for accounts/users list page.
Filters users who have an email, are not deleted (deleted_at is null).
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminUserRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
patch:
operationId: v1_account_admin_directory_users_partial_update
description: |-
Separate, dedicated endpoint for accounts/users list page.
Filters users who have an email, are not deleted (deleted_at is null).
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedAdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedAdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedAdminUserRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
delete:
operationId: v1_account_admin_directory_users_destroy
description: |-
Separate, dedicated endpoint for accounts/users list page.
Filters users who have an email, are not deleted (deleted_at is null).
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'204':
description: No response body
/api/v1/account/admin/directory-users/export_excel/:
get:
operationId: v1_account_admin_directory_users_export_excel_retrieve
description: |-
Export users to an Excel (.xlsx) file.
Accepts user_ids in POST body for selective bulk export,
or uses current queryset filters if no specific IDs are provided.
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
post:
operationId: v1_account_admin_directory_users_export_excel_create
description: |-
Export users to an Excel (.xlsx) file.
Accepts user_ids in POST body for selective bulk export,
or uses current queryset filters if no specific IDs are provided.
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminUserRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
/api/v1/account/admin/login/:
post:
operationId: v1_account_admin_login_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserLoginRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserLoginRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserLoginRequest'
required: true
security:
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UserLogin'
description: ''
/api/v1/account/admin/notification-templates/:
get:
operationId: v1_account_admin_notification_templates_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedNotificationTemplateList'
description: ''
post:
operationId: v1_account_admin_notification_templates_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/NotificationTemplateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/NotificationTemplateRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
description: ''
/api/v1/account/admin/notification-templates/{id}/:
get:
operationId: v1_account_admin_notification_templates_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification Template.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
description: ''
put:
operationId: v1_account_admin_notification_templates_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification Template.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/NotificationTemplateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/NotificationTemplateRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
description: ''
patch:
operationId: v1_account_admin_notification_templates_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification Template.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedNotificationTemplateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedNotificationTemplateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedNotificationTemplateRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/NotificationTemplate'
description: ''
delete:
operationId: v1_account_admin_notification_templates_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification Template.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'204':
description: No response body
/api/v1/account/admin/notifications/:
get:
operationId: v1_account_admin_notifications_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedAdminNotificationList'
description: ''
post:
operationId: v1_account_admin_notifications_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminNotificationRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminNotificationRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminNotificationRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminNotification'
description: ''
/api/v1/account/admin/notifications/{id}/:
get:
operationId: v1_account_admin_notifications_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminNotification'
description: ''
put:
operationId: v1_account_admin_notifications_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminNotificationRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminNotificationRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminNotificationRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminNotification'
description: ''
patch:
operationId: v1_account_admin_notifications_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedAdminNotificationRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedAdminNotificationRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedAdminNotificationRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminNotification'
description: ''
delete:
operationId: v1_account_admin_notifications_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this Notification.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'204':
description: No response body
/api/v1/account/admin/users/:
get:
operationId: v1_account_admin_users_list
description: |-
Admin-only endpoint for full CRUD operations on Users.
Includes searching, filtering, and pagination.
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedAdminUserList'
description: ''
post:
operationId: v1_account_admin_users_create
description: |-
Admin-only endpoint for full CRUD operations on Users.
Includes searching, filtering, and pagination.
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminUserRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
/api/v1/account/admin/users/{id}/:
get:
operationId: v1_account_admin_users_retrieve
description: |-
Admin-only endpoint for full CRUD operations on Users.
Includes searching, filtering, and pagination.
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
put:
operationId: v1_account_admin_users_update
description: |-
Admin-only endpoint for full CRUD operations on Users.
Includes searching, filtering, and pagination.
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminUserRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
patch:
operationId: v1_account_admin_users_partial_update
description: |-
Admin-only endpoint for full CRUD operations on Users.
Includes searching, filtering, and pagination.
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedAdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedAdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedAdminUserRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
delete:
operationId: v1_account_admin_users_destroy
description: |-
Admin-only endpoint for full CRUD operations on Users.
Includes searching, filtering, and pagination.
parameters:
- in: path
name: id
schema:
type: integer
description: A unique integer value identifying this User.
required: true
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'204':
description: No response body
/api/v1/account/admin/users/export_excel/:
get:
operationId: v1_account_admin_users_export_excel_retrieve
description: |-
Export users to an Excel (.xlsx) file.
Accepts user_ids in POST body for selective bulk export,
or uses current queryset filters if no specific IDs are provided.
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
post:
operationId: v1_account_admin_users_export_excel_create
description: |-
Export users to an Excel (.xlsx) file.
Accepts user_ids in POST body for selective bulk export,
or uses current queryset filters if no specific IDs are provided.
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUserRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AdminUserRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AdminUserRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AdminUser'
description: ''
/api/v1/account/exchange-token/:
post:
operationId: v1_account_exchange_token_create
description: تبدیل temporary token به اطلاعات کاربر برای ورود از اپ موبایل
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ExchangeTokenRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ExchangeTokenRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/ExchangeTokenRequest'
required: true
security:
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
- jwtAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ExchangeToken'
description: ''
/api/v1/account/guest/:
post:
operationId: v1_account_guest_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserGuestRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserGuestRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserGuestRequest'
security:
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UserGuest'
description: ''
/api/v1/account/location-update/:
post:
operationId: v1_account_location_update_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LocationHistoryRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/LocationHistoryRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/LocationHistoryRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/LocationHistory'
description: ''
/api/v1/account/login/:
post:
operationId: v1_account_login_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserLoginRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserLoginRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserLoginRequest'
required: true
security:
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UserLogin'
description: ''
/api/v1/account/notif/:
get:
operationId: v1_account_notif_list
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedNotificationList'
description: ''
/api/v1/account/notif/read/:
post:
operationId: v1_account_notif_read_create
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
description: No response body
/api/v1/account/notif/send/:
post:
operationId: v1_account_notif_send_create
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
description: No response body
/api/v1/account/profile/:
get:
operationId: v1_account_profile_retrieve
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfile'
description: ''
/api/v1/account/profile/delete/:
delete:
operationId: v1_account_profile_delete_destroy
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'204':
description: No response body
/api/v1/account/profile/update/:
put:
operationId: v1_account_profile_update_update
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfileRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserProfileRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserProfileRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfile'
description: ''
patch:
operationId: v1_account_profile_update_partial_update
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUserProfileRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUserProfileRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUserProfileRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserProfile'
description: ''
/api/v1/account/recover/:
post:
operationId: v1_account_recover_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserRecoverPasswordRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserRecoverPasswordRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserRecoverPasswordRequest'
required: true
security:
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UserRecoverPassword'
description: ''
/api/v1/account/region-info/:
get:
operationId: v1_account_region_info_retrieve
description: Returns basic client region, browser, and network info
tags:
- v1
security:
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
- jwtAuth: []
- {}
responses:
'200':
description: No response body
/api/v1/account/register/:
post:
operationId: v1_account_register_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserRegisterRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserRegisterRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserRegisterRequest'
required: true
security:
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UserRegister'
description: ''
/api/v1/account/reset/:
post:
operationId: v1_account_reset_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserResetPasswordRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserResetPasswordRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserResetPasswordRequest'
required: true
security:
- tokenAuth: []
- jwtAuth: []
responses:
'201':
description: No response body
/api/v1/account/update-fcm/:
post:
operationId: v1_account_update_fcm_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserFCMRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserFCMRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserFCMRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserFCM'
description: ''
/api/v1/account/verify/:
post:
operationId: v1_account_verify_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserVerifyRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserVerifyRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserVerifyRequest'
required: true
security:
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UserVerify'
description: ''
/api/v1/account/web/register/:
post:
operationId: v1_account_web_register_create
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebUserRegisterRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/WebUserRegisterRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/WebUserRegisterRequest'
required: true
security:
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/WebUserRegister'
description: ''
/api/v1/auth/token/:
post:
operationId: v1_auth_token_create
description: |-
Takes a set of user credentials and returns an access and refresh JSON web
token pair to prove the authentication of those credentials.
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TokenObtainPairRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenObtainPairRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TokenObtainPairRequest'
required: true
security:
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TokenObtainPair'
description: ''
/api/v1/auth/token/refresh/:
post:
operationId: v1_auth_token_refresh_create
description: |-
Takes a refresh type JSON web token and returns an access type JSON web
token if the refresh token is valid.
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TokenRefreshRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenRefreshRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TokenRefreshRequest'
required: true
security:
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/TokenRefresh'
description: ''
/api/v1/auth/token/verify/:
post:
operationId: v1_auth_token_verify_create
description: |-
Takes a token and indicates if it is valid. This view provides no
information about a token's fitness for a particular use.
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TokenVerifyRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/TokenVerifyRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/TokenVerifyRequest'
required: true
security:
- jwtAuth: []
responses:
'200':
description: No response body
/api/v1/contact-us/:
post:
operationId: v1_contact_us_create
description: Submit a user contact or support inquiry
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SupportMessageCreateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/SupportMessageCreateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/SupportMessageCreateRequest'
required: true
security:
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
- jwtAuth: []
- {}
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/SupportMessageCreate'
description: ''
/api/v1/health/:
get:
operationId: v1_health_retrieve
description: Returns system status, current timestamp, and API version
summary: Check API server health status
tags:
- v1
security:
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
- jwtAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
description: ''
/api/v1/settings/about-us/:
get:
operationId: v1_settings_about_us_retrieve
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AboutUs'
description: ''
put:
operationId: v1_settings_about_us_update
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AboutUsRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AboutUsRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AboutUsRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AboutUs'
description: ''
/api/v1/settings/about-us-dobodi/:
get:
operationId: v1_settings_about_us_dobodi_retrieve
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AboutUsDobodi'
description: ''
put:
operationId: v1_settings_about_us_dobodi_update
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AboutUsDobodiRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AboutUsDobodiRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/AboutUsDobodiRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AboutUsDobodi'
description: ''
/api/v1/settings/card/:
get:
operationId: v1_settings_card_retrieve
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
description: ''
put:
operationId: v1_settings_card_update
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CardRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CardRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/CardRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Card'
description: ''
/api/v1/settings/faq-course/:
get:
operationId: v1_settings_faq_course_retrieve
tags:
- v1
security:
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
- jwtAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FAQItem'
description: ''
/api/v1/settings/faq-general/:
get:
operationId: v1_settings_faq_general_retrieve
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FAQItem'
description: ''
put:
operationId: v1_settings_faq_general_update
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FAQItemRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/FAQItemRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/FAQItemRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/FAQItem'
description: ''
/api/v1/settings/support/:
get:
operationId: v1_settings_support_retrieve
tags:
- v1
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Support'
description: ''
put:
operationId: v1_settings_support_update
tags:
- v1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SupportRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/SupportRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/SupportRequest'
security:
- tokenAuth: []
- jwtAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/Support'
description: ''
/api/v1/version/:
get:
operationId: v1_version_retrieve
description: Returns latest active mobile/web application version details
summary: Get active application version
tags:
- v1
security:
- jwtAuth: []
- tokenAuth: []
- cookieAuth: []
- jwtAuth: []
- {}
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AppVersion'
description: ''
'404':
description: No active version found
components:
schemas:
AboutUs:
type: object
properties:
content:
type: string
default: ''
AboutUsDobodi:
type: object
properties:
arabic_text:
type: string
default: ''
translated_text:
type: string
default: ''
title:
type: string
default: ''
content:
type: string
default: ''
AboutUsDobodiRequest:
type: object
properties:
arabic_text:
type: string
default: ''
translated_text:
type: string
default: ''
title:
type: string
default: ''
content:
type: string
default: ''
AboutUsRequest:
type: object
properties:
content:
type: string
default: ''
AdminNotification:
type: object
properties:
id:
type: integer
readOnly: true
title:
type: string
maxLength: 255
message:
type: string
maxLength: 1024
is_read:
type: boolean
notification_type:
type: string
nullable: true
maxLength: 50
action:
type: string
maxLength: 50
navigate_to:
type: string
nullable: true
maxLength: 255
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
user_fullname:
type: string
readOnly: true
user_email:
type: string
readOnly: true
user_id:
type: integer
readOnly: true
required:
- created_at
- id
- message
- title
- updated_at
- user_email
- user_fullname
- user_id
AdminNotificationRequest:
type: object
properties:
title:
type: string
minLength: 1
maxLength: 255
message:
type: string
minLength: 1
maxLength: 1024
is_read:
type: boolean
notification_type:
type: string
nullable: true
maxLength: 50
action:
type: string
minLength: 1
maxLength: 50
navigate_to:
type: string
nullable: true
maxLength: 255
required:
- message
- title
AdminUser:
type: object
properties:
id:
type: integer
readOnly: true
fullname:
type: string
nullable: true
title: Full Name
description: Full name of the user.
maxLength: 255
email:
type: string
format: email
phone_number:
type: string
nullable: true
description: e.g., +1 555 1234567
maxLength: 128
avatar:
type: string
nullable: true
gender:
nullable: true
oneOf:
- $ref: '#/components/schemas/GenderEnum'
- $ref: '#/components/schemas/BlankEnum'
- $ref: '#/components/schemas/NullEnum'
birthdate:
type: string
format: date
nullable: true
info:
type: string
nullable: true
title: Bio / Info
skill:
type: string
nullable: true
title: Skill / Role
maxLength: 512
city:
type: string
nullable: true
maxLength: 255
country:
type: string
nullable: true
maxLength: 255
device_id:
type: string
readOnly: true
device_os:
type: string
readOnly: true
user_agent:
type: string
readOnly: true
client_ip:
type: string
readOnly: true
fcm:
type: string
nullable: true
title: FCM Token
maxLength: 512
user_type:
$ref: '#/components/schemas/UserTypeEnum'
is_active:
type: boolean
title: Active
description: Designates whether this user should be treated as active.
is_staff:
type: boolean
is_superuser:
type: boolean
title: Superuser status
description: Designates that this user has all permissions without explicitly
assigning them.
date_joined:
type: string
format: date-time
readOnly: true
last_login:
type: string
format: date-time
readOnly: true
nullable: true
auth_token:
type: string
readOnly: true
plain_password:
type: string
readOnly: true
required:
- auth_token
- client_ip
- date_joined
- device_id
- device_os
- email
- id
- last_login
- plain_password
- user_agent
AdminUserRequest:
type: object
properties:
fullname:
type: string
nullable: true
title: Full Name
description: Full name of the user.
maxLength: 255
email:
type: string
format: email
minLength: 1
phone_number:
type: string
nullable: true
description: e.g., +1 555 1234567
maxLength: 128
password:
type: string
writeOnly: true
minLength: 1
avatar:
type: string
nullable: true
minLength: 1
gender:
nullable: true
oneOf:
- $ref: '#/components/schemas/GenderEnum'
- $ref: '#/components/schemas/BlankEnum'
- $ref: '#/components/schemas/NullEnum'
birthdate:
type: string
format: date
nullable: true
info:
type: string
nullable: true
title: Bio / Info
skill:
type: string
nullable: true
title: Skill / Role
maxLength: 512
city:
type: string
nullable: true
maxLength: 255
country:
type: string
nullable: true
maxLength: 255
fcm:
type: string
nullable: true
title: FCM Token
maxLength: 512
user_type:
$ref: '#/components/schemas/UserTypeEnum'
is_active:
type: boolean
title: Active
description: Designates whether this user should be treated as active.
is_staff:
type: boolean
is_superuser:
type: boolean
title: Superuser status
description: Designates that this user has all permissions without explicitly
assigning them.
required:
- email
AppTypeEnum:
enum:
- google_play
- app_store
- direct
type: string
description: |-
* `google_play` - Google Play
* `app_store` - Apple App Store
* `direct` - Direct Download
AppVersion:
type: object
properties:
id:
type: integer
readOnly: true
version:
type: string
description: Application version in format X.Y.Z (e.g., 1.0.0)
pattern: ^\d+\.\d+\.\d+$
maxLength: 20
apk_file:
type: string
format: uri
nullable: true
readOnly: true
description:
type: string
description: Release notes and changes for this version
app_type:
allOf:
- $ref: '#/components/schemas/AppTypeEnum'
title: App Distribution Platform
downloads_count:
type: integer
maximum: 9223372036854775807
minimum: 0
format: int64
is_active:
type: boolean
title: Active
description: Is this version currently active?
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
required:
- apk_file
- created_at
- id
- updated_at
- version
BlankEnum:
enum:
- ''
Card:
type: object
properties:
card_number:
type: string
default: ''
card_name:
type: string
default: ''
whatsapp_number:
type: string
default: ''
CardRequest:
type: object
properties:
card_number:
type: string
default: ''
card_name:
type: string
default: ''
whatsapp_number:
type: string
default: ''
DeviceOsEnum:
enum:
- android
- apple
- web
type: string
description: |-
* `android` - Android
* `apple` - Apple iOS
* `web` - Web
ExchangeToken:
type: object
properties:
temp_token:
type: string
maxLength: 128
required:
- temp_token
ExchangeTokenRequest:
type: object
properties:
temp_token:
type: string
minLength: 1
maxLength: 128
required:
- temp_token
FAQItem:
type: object
properties:
question:
type: string
default: ''
answer:
type: string
default: ''
FAQItemRequest:
type: object
properties:
question:
type: string
default: ''
answer:
type: string
default: ''
GenderEnum:
enum:
- male
- female
- other
type: string
description: |-
* `male` - Male
* `female` - Female
* `other` - Other
HealthCheckResponse:
type: object
properties:
status:
type: string
default: healthy
timestamp:
type: string
format: date-time
version:
type: string
default: 1.0.0
required:
- timestamp
LocationHistory:
type: object
properties:
id:
type: integer
readOnly: true
lat:
type: number
format: double
nullable: true
title: Latitude
lon:
type: number
format: double
nullable: true
title: Longitude
country:
type: string
nullable: true
maxLength: 255
city:
type: string
nullable: true
maxLength: 255
selected_manually:
type: boolean
ip:
type: string
nullable: true
title: IP Address
maxLength: 255
timezone:
type: string
nullable: true
maxLength: 60
required:
- id
LocationHistoryRequest:
type: object
properties:
lat:
type: number
format: double
nullable: true
title: Latitude
lon:
type: number
format: double
nullable: true
title: Longitude
country:
type: string
nullable: true
maxLength: 255
city:
type: string
nullable: true
maxLength: 255
selected_manually:
type: boolean
ip:
type: string
nullable: true
title: IP Address
maxLength: 255
timezone:
type: string
nullable: true
maxLength: 60
Notification:
type: object
properties:
id:
type: integer
readOnly: true
title:
type: string
maxLength: 255
message:
type: string
maxLength: 1024
is_read:
type: boolean
notification_type:
type: string
nullable: true
maxLength: 50
action:
type: string
maxLength: 50
navigate_to:
type: string
nullable: true
maxLength: 255
created_at:
type: string
format: date-time
readOnly: true
updated_at:
type: string
format: date-time
readOnly: true
required:
- created_at
- id
- message
- title
- updated_at
NotificationTemplate:
type: object
properties:
id:
type: integer
readOnly: true
notification_type:
type: string
maxLength: 50
name:
type: string
maxLength: 100
is_active:
type: boolean
title:
type: string
maxLength: 255
body:
type: string
maxLength: 1024
placeholders_info:
type: string
nullable: true
title: Allowed Placeholders Description
maxLength: 255
required:
- id
- name
- notification_type
NotificationTemplateRequest:
type: object
properties:
notification_type:
type: string
minLength: 1
maxLength: 50
name:
type: string
minLength: 1
maxLength: 100
is_active:
type: boolean
title:
type: string
minLength: 1
maxLength: 255
body:
type: string
minLength: 1
maxLength: 1024
placeholders_info:
type: string
nullable: true
title: Allowed Placeholders Description
maxLength: 255
required:
- name
- notification_type
NullEnum:
enum:
- null
PaginatedAdminNotificationList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/AdminNotification'
PaginatedAdminUserList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/AdminUser'
PaginatedNotificationList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/Notification'
PaginatedNotificationTemplateList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type: string
nullable: true
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/NotificationTemplate'
PatchedAdminNotificationRequest:
type: object
properties:
title:
type: string
minLength: 1
maxLength: 255
message:
type: string
minLength: 1
maxLength: 1024
is_read:
type: boolean
notification_type:
type: string
nullable: true
maxLength: 50
action:
type: string
minLength: 1
maxLength: 50
navigate_to:
type: string
nullable: true
maxLength: 255
PatchedAdminUserRequest:
type: object
properties:
fullname:
type: string
nullable: true
title: Full Name
description: Full name of the user.
maxLength: 255
email:
type: string
format: email
minLength: 1
phone_number:
type: string
nullable: true
description: e.g., +1 555 1234567
maxLength: 128
password:
type: string
writeOnly: true
minLength: 1
avatar:
type: string
nullable: true
minLength: 1
gender:
nullable: true
oneOf:
- $ref: '#/components/schemas/GenderEnum'
- $ref: '#/components/schemas/BlankEnum'
- $ref: '#/components/schemas/NullEnum'
birthdate:
type: string
format: date
nullable: true
info:
type: string
nullable: true
title: Bio / Info
skill:
type: string
nullable: true
title: Skill / Role
maxLength: 512
city:
type: string
nullable: true
maxLength: 255
country:
type: string
nullable: true
maxLength: 255
fcm:
type: string
nullable: true
title: FCM Token
maxLength: 512
user_type:
$ref: '#/components/schemas/UserTypeEnum'
is_active:
type: boolean
title: Active
description: Designates whether this user should be treated as active.
is_staff:
type: boolean
is_superuser:
type: boolean
title: Superuser status
description: Designates that this user has all permissions without explicitly
assigning them.
PatchedNotificationTemplateRequest:
type: object
properties:
notification_type:
type: string
minLength: 1
maxLength: 50
name:
type: string
minLength: 1
maxLength: 100
is_active:
type: boolean
title:
type: string
minLength: 1
maxLength: 255
body:
type: string
minLength: 1
maxLength: 1024
placeholders_info:
type: string
nullable: true
title: Allowed Placeholders Description
maxLength: 255
PatchedUserProfileRequest:
type: object
properties:
fcm:
type: string
minLength: 1
description: Firebase Cloud Messaging token.
fullname:
type: string
minLength: 1
avatar:
type: string
nullable: true
minLength: 1
phone_number:
type: string
nullable: true
description: e.g., +1 555 1234567
maxLength: 128
password:
type: string
writeOnly: true
minLength: 1
city:
type: string
nullable: true
maxLength: 255
country:
type: string
nullable: true
maxLength: 255
birthdate:
type: string
format: date
nullable: true
gender:
allOf:
- $ref: '#/components/schemas/GenderEnum'
description: |-
Select the user's gender.
* `male` - Male
* `female` - Female
* `other` - Other
Support:
type: object
properties:
telegram_number:
type: string
default: ''
whatsapp_number:
type: string
default: ''
office_hours:
type: string
default: ''
SupportMessageCreate:
type: object
properties:
id:
type: integer
readOnly: true
sender_name:
type: string
maxLength: 255
sender_email:
type: string
format: email
maxLength: 254
subject:
type: string
maxLength: 255
sender_phone:
type: string
nullable: true
maxLength: 128
message:
type: string
created_at:
type: string
format: date-time
readOnly: true
required:
- created_at
- id
- message
- sender_email
- sender_name
- subject
SupportMessageCreateRequest:
type: object
properties:
sender_name:
type: string
minLength: 1
maxLength: 255
sender_email:
type: string
format: email
minLength: 1
maxLength: 254
subject:
type: string
minLength: 1
maxLength: 255
sender_phone:
type: string
nullable: true
maxLength: 128
message:
type: string
minLength: 1
required:
- message
- sender_email
- sender_name
- subject
SupportRequest:
type: object
properties:
telegram_number:
type: string
default: ''
whatsapp_number:
type: string
default: ''
office_hours:
type: string
default: ''
TokenObtainPair:
type: object
properties:
access:
type: string
readOnly: true
refresh:
type: string
readOnly: true
required:
- access
- refresh
TokenObtainPairRequest:
type: object
properties:
email:
type: string
writeOnly: true
minLength: 1
password:
type: string
writeOnly: true
minLength: 1
required:
- email
- password
TokenRefresh:
type: object
properties:
access:
type: string
readOnly: true
refresh:
type: string
required:
- access
- refresh
TokenRefreshRequest:
type: object
properties:
refresh:
type: string
minLength: 1
required:
- refresh
TokenVerifyRequest:
type: object
properties:
token:
type: string
writeOnly: true
minLength: 1
required:
- token
UserFCM:
type: object
properties:
fcm:
type: string
nullable: true
title: FCM Token
maxLength: 512
UserFCMRequest:
type: object
properties:
fcm:
type: string
nullable: true
title: FCM Token
maxLength: 512
UserGuest:
type: object
properties:
device_id:
type: string
fcm:
type: string
device_os:
$ref: '#/components/schemas/DeviceOsEnum'
lat:
type: string
nullable: true
maxLength: 255
lon:
type: string
nullable: true
maxLength: 255
timezone:
type: string
nullable: true
UserGuestRequest:
type: object
properties:
device_id:
type: string
minLength: 1
fcm:
type: string
minLength: 1
device_os:
$ref: '#/components/schemas/DeviceOsEnum'
lat:
type: string
nullable: true
maxLength: 255
lon:
type: string
nullable: true
maxLength: 255
timezone:
type: string
nullable: true
UserLogin:
type: object
properties:
token:
type: string
readOnly: true
nullable: true
fullname:
type: string
readOnly: true
nullable: true
avatar:
type: string
readOnly: true
nullable: true
password:
type: string
fcm:
type: string
device_id:
type: string
timezone:
type: string
nullable: true
required:
- avatar
- fullname
- password
- token
UserLoginRequest:
type: object
properties:
email:
type: string
format: email
writeOnly: true
minLength: 1
password:
type: string
minLength: 1
fcm:
type: string
minLength: 1
device_id:
type: string
minLength: 1
timezone:
type: string
nullable: true
required:
- email
- password
UserProfile:
type: object
properties:
id:
type: integer
readOnly: true
device_id:
type: string
readOnly: true
nullable: true
fcm:
type: string
description: Firebase Cloud Messaging token.
fullname:
type: string
slug:
type: string
readOnly: true
nullable: true
pattern: ^[-a-zA-Z0-9_]+$
avatar:
type: string
nullable: true
email:
type: string
format: email
readOnly: true
nullable: true
title: Email Address
description: User primary email address.
phone_number:
type: string
nullable: true
description: e.g., +1 555 1234567
maxLength: 128
info:
type: string
readOnly: true
nullable: true
title: Bio / Info
skill:
type: string
readOnly: true
nullable: true
title: Skill / Role
city:
type: string
nullable: true
maxLength: 255
country:
type: string
nullable: true
maxLength: 255
birthdate:
type: string
format: date
nullable: true
gender:
allOf:
- $ref: '#/components/schemas/GenderEnum'
description: |-
Select the user's gender.
* `male` - Male
* `female` - Female
* `other` - Other
saved_location:
type: string
readOnly: true
required:
- device_id
- email
- id
- info
- saved_location
- skill
- slug
UserProfileRequest:
type: object
properties:
fcm:
type: string
minLength: 1
description: Firebase Cloud Messaging token.
fullname:
type: string
minLength: 1
avatar:
type: string
nullable: true
minLength: 1
phone_number:
type: string
nullable: true
description: e.g., +1 555 1234567
maxLength: 128
password:
type: string
writeOnly: true
minLength: 1
city:
type: string
nullable: true
maxLength: 255
country:
type: string
nullable: true
maxLength: 255
birthdate:
type: string
format: date
nullable: true
gender:
allOf:
- $ref: '#/components/schemas/GenderEnum'
description: |-
Select the user's gender.
* `male` - Male
* `female` - Female
* `other` - Other
UserRecoverPassword:
type: object
description: |-
Validates that an email is provided and is in a valid format
without checking for database uniqueness.
properties:
email:
type: string
format: email
required:
- email
UserRecoverPasswordRequest:
type: object
description: |-
Validates that an email is provided and is in a valid format
without checking for database uniqueness.
properties:
email:
type: string
format: email
minLength: 1
required:
- email
UserRegister:
type: object
properties:
id:
type: integer
readOnly: true
fullname:
type: string
nullable: true
title: Full Name
description: Full name of the user.
maxLength: 255
email:
type: string
format: email
fcm:
type: string
nullable: true
required:
- email
- fullname
- id
UserRegisterRequest:
type: object
properties:
fullname:
type: string
nullable: true
title: Full Name
description: Full name of the user.
maxLength: 255
email:
type: string
format: email
minLength: 1
password:
type: string
writeOnly: true
minLength: 1
fcm:
type: string
nullable: true
device_id:
type: string
writeOnly: true
nullable: true
required:
- email
- fullname
UserResetPasswordRequest:
type: object
properties:
password:
type: string
writeOnly: true
minLength: 1
required:
- password
UserTypeEnum:
enum:
- client
- student
- professor
- consultant
- admin
- super_admin
- regional_admin
- institution_admin
- editor
- viewer
type: string
description: |-
* `client` - Client / User
* `student` - Student / Member
* `professor` - Professor / Scholar
* `consultant` - Consultant
* `admin` - Admin
* `super_admin` - Super Admin
* `regional_admin` - Regional Admin
* `institution_admin` - Institution Admin
* `editor` - Editor
* `viewer` - Viewer
UserVerify:
type: object
properties:
code:
type: string
maxLength: 6
email:
type: string
format: email
device_id:
type: string
maxLength: 255
required:
- code
- email
UserVerifyRequest:
type: object
properties:
code:
type: string
minLength: 1
maxLength: 6
email:
type: string
format: email
minLength: 1
device_id:
type: string
minLength: 1
maxLength: 255
required:
- code
- email
WebUserRegister:
type: object
properties:
id:
type: integer
readOnly: true
fullname:
type: string
nullable: true
title: Full Name
description: Full name of the user.
maxLength: 255
email:
type: string
format: email
fcm:
type: string
nullable: true
required:
- email
- fullname
- id
WebUserRegisterRequest:
type: object
properties:
fullname:
type: string
nullable: true
title: Full Name
description: Full name of the user.
maxLength: 255
email:
type: string
format: email
minLength: 1
password:
type: string
writeOnly: true
minLength: 1
fcm:
type: string
nullable: true
required:
- email
- fullname
- password
securitySchemes:
cookieAuth:
type: apiKey
in: cookie
name: sessionid
jwtAuth:
type: http
scheme: bearer
bearerFormat: JWT
tokenAuth:
type: apiKey
in: header
name: Authorization
description: Token-based authentication with required prefix "Token"