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.
4814 lines
117 KiB
4814 lines
117 KiB
{
|
|
"openapi": "3.1.0",
|
|
"info": {
|
|
"title": "Dating App API",
|
|
"version": "0.6.12"
|
|
},
|
|
"servers": [
|
|
{
|
|
"url": "http://127.0.0.1:8001",
|
|
"description": "Local development"
|
|
}
|
|
],
|
|
"paths": {
|
|
"/health": {
|
|
"get": {
|
|
"summary": "Health",
|
|
"operationId": "health_health_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/register": {
|
|
"post": {
|
|
"summary": "Register",
|
|
"operationId": "register_api_v1_auth_register_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterTokenResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/login": {
|
|
"post": {
|
|
"summary": "Login",
|
|
"operationId": "login_api_v1_auth_login_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LoginRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/oauth": {
|
|
"post": {
|
|
"summary": "Oauth Login",
|
|
"operationId": "oauth_login_api_v1_auth_oauth_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OAuthRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/refresh": {
|
|
"post": {
|
|
"summary": "Refresh Access Token",
|
|
"operationId": "refresh_access_token_api_v1_auth_refresh_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/auth/logout": {
|
|
"post": {
|
|
"summary": "Logout",
|
|
"operationId": "logout_api_v1_auth_logout_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RefreshRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/me": {
|
|
"get": {
|
|
"summary": "Get Me",
|
|
"operationId": "get_me_api_v1_users_me_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserActivityResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"patch": {
|
|
"summary": "Update Me",
|
|
"operationId": "update_me_api_v1_users_me_patch",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProfileUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/auth/me": {
|
|
"get": {
|
|
"summary": "Get Me",
|
|
"operationId": "get_me_api_v1_auth_me_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserActivityResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/me/interests": {
|
|
"get": {
|
|
"summary": "Get My Interests",
|
|
"operationId": "get_my_interests_api_v1_users_me_interests_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InterestsResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
},
|
|
"put": {
|
|
"summary": "Update My Interests",
|
|
"operationId": "update_my_interests_api_v1_users_me_interests_put",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InterestsUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InterestsResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/me/location": {
|
|
"put": {
|
|
"summary": "Update Location",
|
|
"operationId": "update_location_api_v1_users_me_location_put",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LocationUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LocationResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/me/posts": {
|
|
"get": {
|
|
"summary": "List My Posts",
|
|
"operationId": "list_my_posts_api_v1_users_me_posts_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 50,
|
|
"minimum": 1,
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"name": "offset",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 5000,
|
|
"minimum": 0,
|
|
"default": 0,
|
|
"title": "Offset"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
},
|
|
"title": "Response List My Posts Api V1 Users Me Posts Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/me/liked": {
|
|
"get": {
|
|
"summary": "List Users I Liked",
|
|
"operationId": "list_users_i_liked_api_v1_users_me_liked_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Users I Liked Api V1 Users Me Liked Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/me/likes": {
|
|
"get": {
|
|
"summary": "List Users Who Liked Me",
|
|
"operationId": "list_users_who_liked_me_api_v1_users_me_likes_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Users Who Liked Me Api V1 Users Me Likes Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/me/matches": {
|
|
"get": {
|
|
"summary": "List My Matches",
|
|
"operationId": "list_my_matches_api_v1_users_me_matches_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MatchResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List My Matches Api V1 Users Me Matches Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/{user_id}/posts": {
|
|
"get": {
|
|
"summary": "List Public User Posts",
|
|
"operationId": "list_public_user_posts_api_v1_users__user_id__posts_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "user_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 50,
|
|
"minimum": 1,
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"name": "offset",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 5000,
|
|
"minimum": 0,
|
|
"default": 0,
|
|
"title": "Offset"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
},
|
|
"title": "Response List Public User Posts Api V1 Users User Id Posts Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/{user_id}": {
|
|
"get": {
|
|
"summary": "Get Public User Profile",
|
|
"operationId": "get_public_user_profile_api_v1_users__user_id__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "user_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "User Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PublicUserProfileResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/users/me/video": {
|
|
"post": {
|
|
"summary": "Upload Video",
|
|
"operationId": "upload_video_api_v1_users_me_video_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_video_api_v1_users_me_video_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/me/image": {
|
|
"post": {
|
|
"summary": "Upload Profile Image",
|
|
"operationId": "upload_profile_image_api_v1_users_me_image_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_profile_image_api_v1_users_me_image_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/users/me/identity": {
|
|
"post": {
|
|
"summary": "Upload Identity",
|
|
"operationId": "upload_identity_api_v1_users_me_identity_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_identity_api_v1_users_me_identity_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/media/{media_id}": {
|
|
"get": {
|
|
"summary": "Get Media",
|
|
"operationId": "get_media_api_v1_media__media_id__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "media_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Media Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/meet": {
|
|
"get": {
|
|
"summary": "Meet Candidates",
|
|
"operationId": "meet_candidates_api_v1_meet_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 50,
|
|
"minimum": 1,
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"title": "Response Meet Candidates Api V1 Meet Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/meet/swipes": {
|
|
"post": {
|
|
"summary": "Swipe",
|
|
"operationId": "swipe_api_v1_meet_swipes_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SwipeRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SwipeResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/meet/likes/{target_user_id}": {
|
|
"delete": {
|
|
"summary": "Cancel Like",
|
|
"operationId": "cancel_like_api_v1_meet_likes__target_user_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "target_user_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Target User Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/meet/swipes/{target_user_id}": {
|
|
"delete": {
|
|
"summary": "Undo Swipe",
|
|
"operationId": "undo_swipe_api_v1_meet_swipes__target_user_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "target_user_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Target User Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/matches": {
|
|
"get": {
|
|
"summary": "List Matches",
|
|
"operationId": "list_matches_api_v1_matches_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MatchResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Matches Api V1 Matches Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/search": {
|
|
"get": {
|
|
"summary": "Search Users",
|
|
"operationId": "search_users_api_v1_search_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "q",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 200
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"name": "city",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
}
|
|
},
|
|
{
|
|
"name": "country",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
}
|
|
},
|
|
{
|
|
"name": "latitude",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 90,
|
|
"minimum": -90
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Latitude"
|
|
}
|
|
},
|
|
{
|
|
"name": "longitude",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 180,
|
|
"minimum": -180
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Longitude"
|
|
}
|
|
},
|
|
{
|
|
"name": "max_distance_km",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 500,
|
|
"exclusiveMinimum": 0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Distance Km"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 50,
|
|
"minimum": 1,
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"title": "Response Search Users Api V1 Search Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/posts": {
|
|
"post": {
|
|
"summary": "Create Post",
|
|
"operationId": "create_post_api_v1_explore_posts_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/explore/posts/{post_id}": {
|
|
"patch": {
|
|
"summary": "Update Post",
|
|
"operationId": "update_post_api_v1_explore_posts__post_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"get": {
|
|
"summary": "Get Explore Post",
|
|
"operationId": "get_explore_post_api_v1_explore_posts__post_id__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Delete Post",
|
|
"operationId": "delete_post_api_v1_explore_posts__post_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/feed": {
|
|
"get": {
|
|
"summary": "Explore Feed",
|
|
"operationId": "explore_feed_api_v1_explore_feed_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 50,
|
|
"minimum": 1,
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"name": "before_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "offset",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 5000,
|
|
"minimum": 0,
|
|
"default": 0,
|
|
"title": "Offset"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
},
|
|
"title": "Response Explore Feed Api V1 Explore Feed Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/posts/{post_id}/media": {
|
|
"post": {
|
|
"summary": "Upload Post Media",
|
|
"operationId": "upload_post_media_api_v1_explore_posts__post_id__media_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "position",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 9,
|
|
"minimum": 0,
|
|
"default": 0,
|
|
"title": "Position"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_upload_post_media_api_v1_explore_posts__post_id__media_post"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostMediaResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/media/{media_id}": {
|
|
"get": {
|
|
"summary": "Get Post Media",
|
|
"operationId": "get_post_media_api_v1_explore_media__media_id__get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "media_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Media Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Delete Post Media",
|
|
"operationId": "delete_post_media_api_v1_explore_media__media_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "media_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Media Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/posts/{post_id}/like": {
|
|
"get": {
|
|
"summary": "List Post Likers",
|
|
"description": "Return all active post likers as ID/name pairs, newest like first. No pagination; empty list without likes.",
|
|
"operationId": "list_post_likers_api_v1_explore_posts__post_id__like_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostLikerResponse"
|
|
},
|
|
"title": "Response List Post Likers Api V1 Explore Posts Post Id Like Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Like Post",
|
|
"description": "Like a post and return a compact success result with count, viewer state, and liker ID/name pairs. Repeated likes are idempotent. The full post content and media are not returned.",
|
|
"operationId": "like_post_api_v1_explore_posts__post_id__like_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostLikeResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Unlike Post",
|
|
"operationId": "unlike_post_api_v1_explore_posts__post_id__like_delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PostUnlikeResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/posts/{post_id}/comments": {
|
|
"get": {
|
|
"summary": "List Comments",
|
|
"operationId": "list_comments_api_v1_explore_posts__post_id__comments_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CommentResponse"
|
|
},
|
|
"title": "Response List Comments Api V1 Explore Posts Post Id Comments Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Create Comment",
|
|
"operationId": "create_comment_api_v1_explore_posts__post_id__comments_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "post_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CommentCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CommentResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/comments/{comment_id}": {
|
|
"patch": {
|
|
"summary": "Update Comment",
|
|
"operationId": "update_comment_api_v1_explore_comments__comment_id__patch",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "comment_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Comment Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CommentUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CommentResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Delete Comment",
|
|
"operationId": "delete_comment_api_v1_explore_comments__comment_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "comment_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Comment Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/explore/comments/{comment_id}/like": {
|
|
"post": {
|
|
"summary": "Like Comment",
|
|
"operationId": "like_comment_api_v1_explore_comments__comment_id__like_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "comment_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Comment Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CommentLikeResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Unlike Comment",
|
|
"operationId": "unlike_comment_api_v1_explore_comments__comment_id__like_delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "comment_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Comment Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CommentLikeResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/feed/questions": {
|
|
"get": {
|
|
"summary": "List Feed Questions",
|
|
"operationId": "list_feed_questions_api_v1_feed_questions_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "unanswered_only",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "boolean",
|
|
"default": false,
|
|
"title": "Unanswered Only"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/FeedQuestionResponse"
|
|
},
|
|
"title": "Response List Feed Questions Api V1 Feed Questions Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/feed/answers/me": {
|
|
"get": {
|
|
"summary": "List My Feed Answers",
|
|
"operationId": "list_my_feed_answers_api_v1_feed_answers_me_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FeedQuestionResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List My Feed Answers Api V1 Feed Answers Me Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/feed/questions/{question_id}/answer": {
|
|
"put": {
|
|
"summary": "Answer Feed Question",
|
|
"operationId": "answer_feed_question_api_v1_feed_questions__question_id__answer_put",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "question_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Question Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QuestionAnswerUpdate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/QuestionAnswerResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"delete": {
|
|
"summary": "Delete Feed Answer",
|
|
"operationId": "delete_feed_answer_api_v1_feed_questions__question_id__answer_delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "question_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Question Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/conversations": {
|
|
"get": {
|
|
"summary": "List Conversations",
|
|
"operationId": "list_conversations_api_v1_chat_conversations_get",
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConversationResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Response List Conversations Api V1 Chat Conversations Get"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"/api/v1/chat/conversations/{match_id}": {
|
|
"post": {
|
|
"summary": "Create Conversation",
|
|
"operationId": "create_conversation_api_v1_chat_conversations__match_id__post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "match_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Match Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConversationResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/conversations/{conversation_id}/messages": {
|
|
"get": {
|
|
"summary": "List Messages",
|
|
"operationId": "list_messages_api_v1_chat_conversations__conversation_id__messages_get",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Conversation Id"
|
|
}
|
|
},
|
|
{
|
|
"name": "limit",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"type": "integer",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"default": 50,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"name": "before_id",
|
|
"in": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatMessageResponse"
|
|
},
|
|
"title": "Response List Messages Api V1 Chat Conversations Conversation Id Messages Get"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"post": {
|
|
"summary": "Send Message",
|
|
"operationId": "send_message_api_v1_chat_conversations__conversation_id__messages_post",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "conversation_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Conversation Id"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"required": true,
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatMessageCreate"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatMessageResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/api/v1/chat/messages/{message_id}": {
|
|
"delete": {
|
|
"summary": "Recall Message",
|
|
"operationId": "recall_message_api_v1_chat_messages__message_id__delete",
|
|
"security": [
|
|
{
|
|
"HTTPBearer": []
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"name": "message_id",
|
|
"in": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"type": "integer",
|
|
"title": "Message Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ChatMessageResponse"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"422": {
|
|
"description": "Validation Error",
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"Body_upload_identity_api_v1_users_me_identity_post": {
|
|
"properties": {
|
|
"document": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"title": "Document"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"document"
|
|
],
|
|
"title": "Body_upload_identity_api_v1_users_me_identity_post"
|
|
},
|
|
"Body_upload_post_media_api_v1_explore_posts__post_id__media_post": {
|
|
"properties": {
|
|
"media": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"title": "Media"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"media"
|
|
],
|
|
"title": "Body_upload_post_media_api_v1_explore_posts__post_id__media_post"
|
|
},
|
|
"Body_upload_profile_image_api_v1_users_me_image_post": {
|
|
"properties": {
|
|
"image": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"title": "Image"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"image"
|
|
],
|
|
"title": "Body_upload_profile_image_api_v1_users_me_image_post"
|
|
},
|
|
"Body_upload_video_api_v1_users_me_video_post": {
|
|
"properties": {
|
|
"video": {
|
|
"type": "string",
|
|
"format": "binary",
|
|
"title": "Video"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"video"
|
|
],
|
|
"title": "Body_upload_video_api_v1_users_me_video_post"
|
|
},
|
|
"ChatMessageCreate": {
|
|
"properties": {
|
|
"content": {
|
|
"type": "string",
|
|
"maxLength": 5000,
|
|
"minLength": 1,
|
|
"title": "Content"
|
|
},
|
|
"message_type": {
|
|
"type": "string",
|
|
"const": "text",
|
|
"title": "Message Type",
|
|
"default": "text"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"content"
|
|
],
|
|
"title": "ChatMessageCreate"
|
|
},
|
|
"ChatMessageResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"conversation_id": {
|
|
"type": "integer",
|
|
"title": "Conversation Id"
|
|
},
|
|
"sender_id": {
|
|
"type": "integer",
|
|
"title": "Sender Id"
|
|
},
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
},
|
|
"message_type": {
|
|
"type": "string",
|
|
"title": "Message Type"
|
|
},
|
|
"is_deleted": {
|
|
"type": "boolean",
|
|
"title": "Is Deleted"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"conversation_id",
|
|
"sender_id",
|
|
"content",
|
|
"message_type",
|
|
"is_deleted",
|
|
"created_at"
|
|
],
|
|
"title": "ChatMessageResponse"
|
|
},
|
|
"ChatParticipantResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
},
|
|
"city": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
},
|
|
"country": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "ChatParticipantResponse"
|
|
},
|
|
"CommentCreate": {
|
|
"properties": {
|
|
"content": {
|
|
"type": "string",
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"title": "Content"
|
|
},
|
|
"parent_comment_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Parent Comment Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"content"
|
|
],
|
|
"title": "CommentCreate"
|
|
},
|
|
"CommentLikeResponse": {
|
|
"properties": {
|
|
"message": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"like_count": {
|
|
"type": "integer",
|
|
"title": "Like Count"
|
|
},
|
|
"liked_by_me": {
|
|
"type": "boolean",
|
|
"title": "Liked By Me"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"message",
|
|
"like_count",
|
|
"liked_by_me"
|
|
],
|
|
"title": "CommentLikeResponse"
|
|
},
|
|
"CommentResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"post_id": {
|
|
"type": "integer",
|
|
"title": "Post Id"
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
},
|
|
"author": {
|
|
"$ref": "#/components/schemas/PostAuthorResponse"
|
|
},
|
|
"parent_comment_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Parent Comment Id"
|
|
},
|
|
"reply_count": {
|
|
"type": "integer",
|
|
"title": "Reply Count",
|
|
"default": 0
|
|
},
|
|
"like_count": {
|
|
"type": "integer",
|
|
"title": "Like Count",
|
|
"default": 0
|
|
},
|
|
"liked_by_me": {
|
|
"type": "boolean",
|
|
"title": "Liked By Me",
|
|
"default": false
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"post_id",
|
|
"content",
|
|
"author",
|
|
"created_at"
|
|
],
|
|
"title": "CommentResponse"
|
|
},
|
|
"CommentUpdate": {
|
|
"properties": {
|
|
"content": {
|
|
"type": "string",
|
|
"maxLength": 2000,
|
|
"minLength": 1,
|
|
"title": "Content"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"content"
|
|
],
|
|
"title": "CommentUpdate"
|
|
},
|
|
"ConversationResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"match_id": {
|
|
"type": "integer",
|
|
"title": "Match Id"
|
|
},
|
|
"other_user": {
|
|
"$ref": "#/components/schemas/ChatParticipantResponse"
|
|
},
|
|
"last_message": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChatMessageResponse"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"match_id",
|
|
"other_user"
|
|
],
|
|
"title": "ConversationResponse"
|
|
},
|
|
"DiscoveryUserResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"birth_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Birth Date"
|
|
},
|
|
"city": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
},
|
|
"county": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "County"
|
|
},
|
|
"country": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
},
|
|
"relationship_goal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"serious_relationship",
|
|
"casual_dates",
|
|
"new_friends",
|
|
"marriage"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Relationship Goal"
|
|
},
|
|
"bio": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bio"
|
|
},
|
|
"profile_image_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Profile Image Url"
|
|
},
|
|
"video_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Video Url"
|
|
},
|
|
"distance_km": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance Km"
|
|
},
|
|
"compatibility_percentage": {
|
|
"type": "integer",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0,
|
|
"title": "Compatibility Percentage",
|
|
"default": 0
|
|
},
|
|
"media": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PublicMediaResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Media"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "DiscoveryUserResponse"
|
|
},
|
|
"FeedQuestionResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"code": {
|
|
"type": "string",
|
|
"title": "Code"
|
|
},
|
|
"question_text": {
|
|
"type": "string",
|
|
"title": "Question Text"
|
|
},
|
|
"question_text_zh": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Question Text Zh"
|
|
},
|
|
"answer_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"boolean",
|
|
"text"
|
|
],
|
|
"title": "Answer Type"
|
|
},
|
|
"current_answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Current Answer"
|
|
},
|
|
"answered_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "date-time"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Answered At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"code",
|
|
"question_text",
|
|
"question_text_zh",
|
|
"answer_type"
|
|
],
|
|
"title": "FeedQuestionResponse"
|
|
},
|
|
"HTTPValidationError": {
|
|
"properties": {
|
|
"detail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidationError"
|
|
},
|
|
"type": "array",
|
|
"title": "Detail"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "HTTPValidationError"
|
|
},
|
|
"InterestsResponse": {
|
|
"properties": {
|
|
"interests": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Interests"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"interests"
|
|
],
|
|
"title": "InterestsResponse"
|
|
},
|
|
"InterestsUpdate": {
|
|
"properties": {
|
|
"interests": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Interests"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"interests"
|
|
],
|
|
"title": "InterestsUpdate"
|
|
},
|
|
"LocationResponse": {
|
|
"properties": {
|
|
"latitude": {
|
|
"type": "number",
|
|
"maximum": 90.0,
|
|
"minimum": -90.0,
|
|
"title": "Latitude"
|
|
},
|
|
"longitude": {
|
|
"type": "number",
|
|
"maximum": 180.0,
|
|
"minimum": -180.0,
|
|
"title": "Longitude"
|
|
},
|
|
"city": {
|
|
"type": "string",
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "City"
|
|
},
|
|
"county": {
|
|
"type": "string",
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "County"
|
|
},
|
|
"updated_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"latitude",
|
|
"longitude",
|
|
"city",
|
|
"county",
|
|
"updated_at"
|
|
],
|
|
"title": "LocationResponse"
|
|
},
|
|
"LocationUpdate": {
|
|
"properties": {
|
|
"latitude": {
|
|
"type": "number",
|
|
"maximum": 90.0,
|
|
"minimum": -90.0,
|
|
"title": "Latitude"
|
|
},
|
|
"longitude": {
|
|
"type": "number",
|
|
"maximum": 180.0,
|
|
"minimum": -180.0,
|
|
"title": "Longitude"
|
|
},
|
|
"city": {
|
|
"type": "string",
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "City"
|
|
},
|
|
"county": {
|
|
"type": "string",
|
|
"maxLength": 120,
|
|
"minLength": 1,
|
|
"title": "County"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"latitude",
|
|
"longitude",
|
|
"city",
|
|
"county"
|
|
],
|
|
"title": "LocationUpdate"
|
|
},
|
|
"LoginRequest": {
|
|
"properties": {
|
|
"email_or_phone": {
|
|
"type": "string",
|
|
"maxLength": 320,
|
|
"minLength": 3,
|
|
"title": "Email Or Phone"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"maxLength": 128,
|
|
"minLength": 8,
|
|
"title": "Password"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email_or_phone",
|
|
"password"
|
|
],
|
|
"title": "LoginRequest"
|
|
},
|
|
"MatchResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"matched_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Matched At"
|
|
},
|
|
"user": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"matched_at",
|
|
"user"
|
|
],
|
|
"title": "MatchResponse"
|
|
},
|
|
"OAuthRequest": {
|
|
"properties": {
|
|
"provider": {
|
|
"type": "string",
|
|
"pattern": "^(wechat|google)$",
|
|
"title": "Provider"
|
|
},
|
|
"provider_user_id": {
|
|
"type": "string",
|
|
"maxLength": 255,
|
|
"minLength": 1,
|
|
"title": "Provider User Id"
|
|
},
|
|
"email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"format": "email"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Email"
|
|
},
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"provider",
|
|
"provider_user_id"
|
|
],
|
|
"title": "OAuthRequest"
|
|
},
|
|
"PostAuthorResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
},
|
|
"profile_image_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Profile Image Url",
|
|
"description": "Author avatar URL; null before upload. Production OSS URLs expire after one hour."
|
|
},
|
|
"city": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
},
|
|
"country": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
},
|
|
"compatibility_percentage": {
|
|
"type": "integer",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0,
|
|
"title": "Compatibility Percentage",
|
|
"default": 0
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "PostAuthorResponse"
|
|
},
|
|
"PostCreate": {
|
|
"properties": {
|
|
"content": {
|
|
"type": "string",
|
|
"maxLength": 5000,
|
|
"title": "Content",
|
|
"default": ""
|
|
},
|
|
"post_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"text",
|
|
"image",
|
|
"video"
|
|
],
|
|
"title": "Post Type",
|
|
"default": "text"
|
|
},
|
|
"content_format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"plain",
|
|
"markdown"
|
|
],
|
|
"title": "Content Format",
|
|
"default": "plain"
|
|
},
|
|
"feeling": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feeling"
|
|
},
|
|
"location": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PostLocation"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "PostCreate"
|
|
},
|
|
"PostLikeResponse": {
|
|
"properties": {
|
|
"message": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"like_count": {
|
|
"type": "integer",
|
|
"title": "Like Count"
|
|
},
|
|
"liked_by_me": {
|
|
"type": "boolean",
|
|
"title": "Liked By Me"
|
|
},
|
|
"liked_by_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostLikerResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Liked By Users",
|
|
"description": "All active likers, newest like first; like_count equals this list's length."
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"message",
|
|
"like_count",
|
|
"liked_by_me"
|
|
],
|
|
"title": "PostLikeResponse",
|
|
"description": "Compact like result; update the existing post rather than replacing it."
|
|
},
|
|
"PostLikerResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "PostLikerResponse",
|
|
"description": "Public post liker identity, without contact details or full profile fields."
|
|
},
|
|
"PostLocation": {
|
|
"properties": {
|
|
"name": {
|
|
"type": "string",
|
|
"maxLength": 255,
|
|
"minLength": 1,
|
|
"title": "Name"
|
|
},
|
|
"latitude": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 90.0,
|
|
"minimum": -90.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Latitude"
|
|
},
|
|
"longitude": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number",
|
|
"maximum": 180.0,
|
|
"minimum": -180.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Longitude"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "PostLocation"
|
|
},
|
|
"PostMediaResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"media_type": {
|
|
"type": "string",
|
|
"enum": [
|
|
"image",
|
|
"video"
|
|
],
|
|
"title": "Media Type"
|
|
},
|
|
"mime_type": {
|
|
"type": "string",
|
|
"title": "Mime Type"
|
|
},
|
|
"size_bytes": {
|
|
"type": "integer",
|
|
"title": "Size Bytes"
|
|
},
|
|
"position": {
|
|
"type": "integer",
|
|
"title": "Position"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"media_type",
|
|
"mime_type",
|
|
"size_bytes",
|
|
"position",
|
|
"url"
|
|
],
|
|
"title": "PostMediaResponse"
|
|
},
|
|
"PostResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"content": {
|
|
"type": "string",
|
|
"title": "Content"
|
|
},
|
|
"post_type": {
|
|
"type": "string",
|
|
"title": "Post Type"
|
|
},
|
|
"content_format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"plain",
|
|
"markdown"
|
|
],
|
|
"title": "Content Format"
|
|
},
|
|
"feeling": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feeling"
|
|
},
|
|
"location": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PostLocation"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"author": {
|
|
"$ref": "#/components/schemas/PostAuthorResponse"
|
|
},
|
|
"like_count": {
|
|
"type": "integer",
|
|
"title": "Like Count"
|
|
},
|
|
"comment_count": {
|
|
"type": "integer",
|
|
"title": "Comment Count"
|
|
},
|
|
"liked_by_me": {
|
|
"type": "boolean",
|
|
"title": "Liked By Me"
|
|
},
|
|
"liked_by_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostLikerResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Liked By Users",
|
|
"description": "All active likers, newest like first; like_count equals this list's length."
|
|
},
|
|
"media": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostMediaResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Media"
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"content",
|
|
"post_type",
|
|
"content_format",
|
|
"author",
|
|
"like_count",
|
|
"comment_count",
|
|
"liked_by_me",
|
|
"created_at"
|
|
],
|
|
"title": "PostResponse"
|
|
},
|
|
"PostUnlikeResponse": {
|
|
"properties": {
|
|
"message": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"like_count": {
|
|
"type": "integer",
|
|
"title": "Like Count"
|
|
},
|
|
"liked_by_me": {
|
|
"type": "boolean",
|
|
"title": "Liked By Me"
|
|
},
|
|
"liked_by_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostLikerResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Liked By Users",
|
|
"description": "All active likers, newest like first; like_count equals this list's length."
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"message",
|
|
"like_count",
|
|
"liked_by_me"
|
|
],
|
|
"title": "PostUnlikeResponse",
|
|
"description": "Compact unlike result; mirrors the like result without returning the full post body."
|
|
},
|
|
"PostUpdate": {
|
|
"properties": {
|
|
"content": {
|
|
"type": "string",
|
|
"maxLength": 5000,
|
|
"title": "Content"
|
|
},
|
|
"content_format": {
|
|
"type": "string",
|
|
"enum": [
|
|
"plain",
|
|
"markdown"
|
|
],
|
|
"title": "Content Format"
|
|
},
|
|
"feeling": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feeling"
|
|
},
|
|
"location": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PostLocation"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "PostUpdate"
|
|
},
|
|
"ProfileResponse": {
|
|
"properties": {
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"birth_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Birth Date"
|
|
},
|
|
"city": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
},
|
|
"county": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "County"
|
|
},
|
|
"country": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
},
|
|
"relationship_goal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"serious_relationship",
|
|
"casual_dates",
|
|
"new_friends",
|
|
"marriage"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Relationship Goal"
|
|
},
|
|
"bio": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bio"
|
|
},
|
|
"occupation": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Occupation"
|
|
},
|
|
"education": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Education"
|
|
},
|
|
"height_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Height Cm"
|
|
},
|
|
"beliefs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Beliefs"
|
|
},
|
|
"smoking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Smoking"
|
|
},
|
|
"drinking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Drinking"
|
|
},
|
|
"pets": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Pets"
|
|
},
|
|
"exercise": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Exercise"
|
|
},
|
|
"age": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Age"
|
|
},
|
|
"profile_image_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Profile Image Url"
|
|
},
|
|
"video_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Video Url"
|
|
},
|
|
"interests": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Interests"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"full_name",
|
|
"gender",
|
|
"birth_date",
|
|
"city",
|
|
"county",
|
|
"country",
|
|
"relationship_goal",
|
|
"bio",
|
|
"profile_image_url",
|
|
"video_url"
|
|
],
|
|
"title": "ProfileResponse"
|
|
},
|
|
"ProfileUpdate": {
|
|
"properties": {
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 30
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"birth_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Birth Date"
|
|
},
|
|
"city": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
},
|
|
"country": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
},
|
|
"relationship_goal": {
|
|
"type": "string",
|
|
"enum": [
|
|
"serious_relationship",
|
|
"casual_dates",
|
|
"new_friends",
|
|
"marriage"
|
|
],
|
|
"title": "Relationship Goal"
|
|
},
|
|
"bio": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 2000,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bio"
|
|
},
|
|
"occupation": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Occupation"
|
|
},
|
|
"education": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Education"
|
|
},
|
|
"height_cm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer",
|
|
"maximum": 250.0,
|
|
"minimum": 100.0
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Height Cm"
|
|
},
|
|
"beliefs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Beliefs"
|
|
},
|
|
"smoking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Smoking"
|
|
},
|
|
"drinking": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Drinking"
|
|
},
|
|
"pets": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Pets"
|
|
},
|
|
"exercise": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 50
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Exercise"
|
|
},
|
|
"interests": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Interests"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"title": "ProfileUpdate"
|
|
},
|
|
"PublicMediaResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"media_type": {
|
|
"type": "string",
|
|
"title": "Media Type"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"title": "Url"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"media_type",
|
|
"url"
|
|
],
|
|
"title": "PublicMediaResponse"
|
|
},
|
|
"PublicUserProfileResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"birth_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Birth Date"
|
|
},
|
|
"city": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
},
|
|
"county": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "County"
|
|
},
|
|
"country": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
},
|
|
"relationship_goal": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"enum": [
|
|
"serious_relationship",
|
|
"casual_dates",
|
|
"new_friends",
|
|
"marriage"
|
|
]
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Relationship Goal"
|
|
},
|
|
"bio": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bio"
|
|
},
|
|
"profile_image_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Profile Image Url"
|
|
},
|
|
"video_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Video Url"
|
|
},
|
|
"distance_km": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Distance Km"
|
|
},
|
|
"compatibility_percentage": {
|
|
"type": "integer",
|
|
"maximum": 100.0,
|
|
"minimum": 0.0,
|
|
"title": "Compatibility Percentage",
|
|
"default": 0
|
|
},
|
|
"media": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PublicMediaResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Media"
|
|
},
|
|
"interests": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"title": "Interests"
|
|
},
|
|
"posts": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Posts"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "PublicUserProfileResponse",
|
|
"description": "Public profile details safe to show on another user's profile page."
|
|
},
|
|
"QuestionAnswerResponse": {
|
|
"properties": {
|
|
"question_id": {
|
|
"type": "integer",
|
|
"title": "Question Id"
|
|
},
|
|
"answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"title": "Answer"
|
|
},
|
|
"answered_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Answered At"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"question_id",
|
|
"answer",
|
|
"answered_at"
|
|
],
|
|
"title": "QuestionAnswerResponse"
|
|
},
|
|
"QuestionAnswerUpdate": {
|
|
"properties": {
|
|
"answer": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"title": "Answer"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"answer"
|
|
],
|
|
"title": "QuestionAnswerUpdate"
|
|
},
|
|
"RefreshRequest": {
|
|
"properties": {
|
|
"refresh_token": {
|
|
"type": "string",
|
|
"maxLength": 200,
|
|
"minLength": 20,
|
|
"title": "Refresh Token"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"refresh_token"
|
|
],
|
|
"title": "RefreshRequest"
|
|
},
|
|
"RegisterRequest": {
|
|
"properties": {
|
|
"email_or_phone": {
|
|
"type": "string",
|
|
"maxLength": 320,
|
|
"minLength": 3,
|
|
"title": "Email Or Phone"
|
|
},
|
|
"password": {
|
|
"type": "string",
|
|
"maxLength": 128,
|
|
"minLength": 8,
|
|
"title": "Password"
|
|
},
|
|
"confirm_password": {
|
|
"type": "string",
|
|
"maxLength": 128,
|
|
"minLength": 8,
|
|
"title": "Confirm Password"
|
|
},
|
|
"relationship_goal": {
|
|
"type": "string",
|
|
"enum": [
|
|
"serious_relationship",
|
|
"casual_dates",
|
|
"new_friends",
|
|
"marriage"
|
|
],
|
|
"title": "Relationship Goal"
|
|
},
|
|
"full_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Full Name"
|
|
},
|
|
"gender": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 30
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gender"
|
|
},
|
|
"birth_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Birth Date"
|
|
},
|
|
"city": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "City"
|
|
},
|
|
"country": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 120
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Country"
|
|
},
|
|
"bio": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string",
|
|
"maxLength": 2000,
|
|
"minLength": 1
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bio"
|
|
},
|
|
"interests": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Interests"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"email_or_phone",
|
|
"password",
|
|
"confirm_password",
|
|
"relationship_goal"
|
|
],
|
|
"title": "RegisterRequest"
|
|
},
|
|
"RegisterTokenResponse": {
|
|
"properties": {
|
|
"access_token": {
|
|
"type": "string",
|
|
"title": "Access Token"
|
|
},
|
|
"refresh_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Refresh Token"
|
|
},
|
|
"token_type": {
|
|
"type": "string",
|
|
"title": "Token Type",
|
|
"default": "bearer"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"access_token"
|
|
],
|
|
"title": "RegisterTokenResponse",
|
|
"description": "Tokens returned after registration."
|
|
},
|
|
"SwipeRequest": {
|
|
"properties": {
|
|
"target_user_id": {
|
|
"type": "integer",
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Target User Id"
|
|
},
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"like",
|
|
"pass",
|
|
"super_like"
|
|
],
|
|
"title": "Direction"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"target_user_id",
|
|
"direction"
|
|
],
|
|
"title": "SwipeRequest"
|
|
},
|
|
"SwipeResponse": {
|
|
"properties": {
|
|
"direction": {
|
|
"type": "string",
|
|
"enum": [
|
|
"like",
|
|
"pass",
|
|
"super_like"
|
|
],
|
|
"title": "Direction"
|
|
},
|
|
"matched": {
|
|
"type": "boolean",
|
|
"title": "Matched"
|
|
},
|
|
"match_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Match Id"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"direction",
|
|
"matched"
|
|
],
|
|
"title": "SwipeResponse"
|
|
},
|
|
"TokenResponse": {
|
|
"properties": {
|
|
"access_token": {
|
|
"type": "string",
|
|
"title": "Access Token"
|
|
},
|
|
"refresh_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Refresh Token"
|
|
},
|
|
"token_type": {
|
|
"type": "string",
|
|
"title": "Token Type",
|
|
"default": "bearer"
|
|
},
|
|
"user": {
|
|
"$ref": "#/components/schemas/UserResponse"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"access_token",
|
|
"user"
|
|
],
|
|
"title": "TokenResponse"
|
|
},
|
|
"UserActivityResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"email_or_phone": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Email Or Phone"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
},
|
|
"profile": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProfileResponse"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
},
|
|
"posts": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Posts"
|
|
},
|
|
"liked_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Liked Users"
|
|
},
|
|
"liked_by_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Liked By Users"
|
|
},
|
|
"matches": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MatchResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Matches"
|
|
},
|
|
"liked_users_count": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Liked Users Count"
|
|
},
|
|
"liked_by_users_count": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Liked By Users Count"
|
|
},
|
|
"matches_count": {
|
|
"type": "integer",
|
|
"minimum": 0.0,
|
|
"title": "Matches Count"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"email_or_phone",
|
|
"status",
|
|
"profile",
|
|
"created_at",
|
|
"liked_users_count",
|
|
"liked_by_users_count",
|
|
"matches_count"
|
|
],
|
|
"title": "UserActivityResponse"
|
|
},
|
|
"UserResponse": {
|
|
"properties": {
|
|
"id": {
|
|
"type": "integer",
|
|
"title": "Id"
|
|
},
|
|
"email_or_phone": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Email Or Phone"
|
|
},
|
|
"status": {
|
|
"type": "string",
|
|
"title": "Status"
|
|
},
|
|
"profile": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ProfileResponse"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"created_at": {
|
|
"type": "string",
|
|
"format": "date-time",
|
|
"title": "Created At"
|
|
},
|
|
"posts": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PostResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Posts"
|
|
},
|
|
"liked_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Liked Users"
|
|
},
|
|
"liked_by_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DiscoveryUserResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Liked By Users"
|
|
},
|
|
"matches": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MatchResponse"
|
|
},
|
|
"type": "array",
|
|
"title": "Matches"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"id",
|
|
"email_or_phone",
|
|
"status",
|
|
"profile",
|
|
"created_at"
|
|
],
|
|
"title": "UserResponse"
|
|
},
|
|
"ValidationError": {
|
|
"properties": {
|
|
"loc": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"type": "array",
|
|
"title": "Location"
|
|
},
|
|
"msg": {
|
|
"type": "string",
|
|
"title": "Message"
|
|
},
|
|
"type": {
|
|
"type": "string",
|
|
"title": "Error Type"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"required": [
|
|
"loc",
|
|
"msg",
|
|
"type"
|
|
],
|
|
"title": "ValidationError"
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"HTTPBearer": {
|
|
"type": "http",
|
|
"scheme": "bearer"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|