{
  "openapi": "3.0.0",
  "paths": {
    "/": {
      "get": {
        "operationId": "AppController_getHello",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "tags": [
          "App"
        ]
      }
    },
    "/api/file/upload": {
      "post": {
        "operationId": "FileController_upload",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/UploadFileDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "File"
        ]
      }
    },
    "/api/user": {
      "post": {
        "operationId": "UserController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/{id}": {
      "patch": {
        "operationId": "UserController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      },
      "get": {
        "operationId": "UserController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/profile": {
      "get": {
        "operationId": "UserController_myProfile",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/login": {
      "post": {
        "operationId": "UserController_login",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LoginDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/logout": {
      "post": {
        "operationId": "UserController_logout",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogoutDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/social-login": {
      "post": {
        "operationId": "UserController_socialLogin",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SocialLoginDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/verify-code": {
      "post": {
        "operationId": "UserController_verifyCode",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyCodeDTO"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/forgot-password": {
      "post": {
        "operationId": "UserController_forgotPassword",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/resend-code": {
      "post": {
        "operationId": "UserController_resendCode",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForgotDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/reset-password": {
      "post": {
        "operationId": "UserController_resetPassword",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResetPaswordDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/user/change-password": {
      "post": {
        "operationId": "UserController_changePassword",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChangePaswordDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Authentication / Profile Management"
        ]
      }
    },
    "/api/daily-goal": {
      "get": {
        "operationId": "DailyGoalController_getDailyGoal",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "DailyGoal"
        ]
      }
    },
    "/api/daily-goal/by-date": {
      "get": {
        "operationId": "DailyGoalController_getDailyGoalByDate",
        "parameters": [
          {
            "name": "date",
            "required": true,
            "in": "query",
            "description": "The date for which to retrieve daily goals, in MM-DD-YYYY format.",
            "schema": {
              "example": "10-26-2023",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "DailyGoal"
        ]
      }
    },
    "/api/posts": {
      "post": {
        "operationId": "PostController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePostDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Post"
        ]
      },
      "get": {
        "operationId": "PostController_findAll",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Post"
        ]
      }
    },
    "/api/posts/discover": {
      "get": {
        "operationId": "PostController_discoverPosts",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Post"
        ]
      }
    },
    "/api/posts/{id}": {
      "get": {
        "operationId": "PostController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Post"
        ]
      },
      "patch": {
        "operationId": "PostController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePostDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Post"
        ]
      },
      "delete": {
        "operationId": "PostController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Post"
        ]
      }
    },
    "/api/post-likes": {
      "post": {
        "operationId": "PostLikeController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePostLikeDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "PostLike"
        ]
      }
    },
    "/api/post-likes/{postId}": {
      "get": {
        "operationId": "PostLikeController_getCommentLikes",
        "parameters": [
          {
            "name": "postId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "PostLike"
        ]
      }
    },
    "/api/post-comments": {
      "post": {
        "operationId": "PostCommentController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePostCommentDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "PostComment"
        ]
      }
    },
    "/api/post-comments/{postId}": {
      "get": {
        "operationId": "PostCommentController_getPostComments",
        "parameters": [
          {
            "name": "postId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "PostComment"
        ]
      }
    },
    "/api/post-comments/replies/{commentId}": {
      "get": {
        "operationId": "PostCommentController_getPostCommentReplies",
        "parameters": [
          {
            "name": "commentId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "PostComment"
        ]
      }
    },
    "/api/post-comments/{id}": {
      "delete": {
        "operationId": "PostCommentController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "PostComment"
        ]
      }
    },
    "/api/meal": {
      "post": {
        "operationId": "MealController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMealDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Meal"
        ]
      },
      "get": {
        "operationId": "MealController_findAll",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Meal"
        ]
      }
    },
    "/api/meal/analyze-image": {
      "post": {
        "operationId": "MealController_analyzeImage",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnalyzeFileDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Meal"
        ]
      }
    },
    "/api/meal/{id}": {
      "get": {
        "operationId": "MealController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Meal"
        ]
      },
      "patch": {
        "operationId": "MealController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMealDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Meal"
        ]
      },
      "delete": {
        "operationId": "MealController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Meal"
        ]
      }
    },
    "/api/comment-likes": {
      "post": {
        "operationId": "CommentLikeController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommentLikeDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "CommentLike"
        ]
      }
    },
    "/api/comment-likes/{commentId}": {
      "get": {
        "operationId": "CommentLikeController_getCommentLikes",
        "parameters": [
          {
            "name": "commentId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "CommentLike"
        ]
      }
    },
    "/api/fastings": {
      "post": {
        "operationId": "FastingController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFastingDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Fasting"
        ]
      },
      "get": {
        "operationId": "FastingController_getFastingEvents",
        "parameters": [
          {
            "name": "fasting",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "required": true,
            "in": "query",
            "description": "Filter by Date",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timezone",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Fasting"
        ]
      }
    },
    "/api/fastings/month": {
      "get": {
        "operationId": "FastingController_getMonthlyFastingEvents",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "month",
            "required": false,
            "in": "query",
            "description": "Filter by Month and Year (MM-YYYY)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Fasting"
        ]
      }
    },
    "/api/fastings/today": {
      "get": {
        "operationId": "FastingController_getFastingForToday",
        "parameters": [
          {
            "name": "timezone",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Fasting"
        ]
      }
    },
    "/api/fastings/schedules": {
      "get": {
        "operationId": "FastingController_getFastingSchedules",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "description": "Search query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Fasting"
        ]
      }
    },
    "/api/fastings/{id}": {
      "patch": {
        "operationId": "FastingController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateFastingDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Fasting"
        ]
      },
      "delete": {
        "operationId": "FastingController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Fasting"
        ]
      }
    },
    "/api/chat/group": {
      "post": {
        "operationId": "ChatController_createGroup",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateChatGroupDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/{id}": {
      "patch": {
        "operationId": "ChatController_updateGroup",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateChatDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      },
      "get": {
        "operationId": "ChatController_getGroup",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/join-multiple-groups": {
      "post": {
        "operationId": "ChatController_joinMultipleGroups",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinMultipleGroupDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/{id}/join": {
      "post": {
        "operationId": "ChatController_joinGroup",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/report": {
      "post": {
        "operationId": "ChatController_reportChatGroup",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateReportChatRoomDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/groups": {
      "get": {
        "operationId": "ChatController_getGroups",
        "parameters": [
          {
            "name": "type",
            "required": true,
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "search",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/{id}/media": {
      "get": {
        "operationId": "ChatController_getGroupMedia",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/message": {
      "post": {
        "operationId": "ChatController_sendMessage",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SendMessageDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/{id}/messages": {
      "get": {
        "operationId": "ChatController_getMessages",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group-check/{id}": {
      "get": {
        "operationId": "ChatController_checkGroup",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/{groupId}/leave": {
      "patch": {
        "operationId": "ChatController_leaveGroup",
        "parameters": [
          {
            "name": "groupId",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/chat/group/remove-member/{id}": {
      "patch": {
        "operationId": "ChatController_removeMember",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JoinGroupDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Chat"
        ]
      }
    },
    "/api/notification": {
      "get": {
        "operationId": "NotificationController_get",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timezone",
            "required": false,
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Notification"
        ]
      }
    },
    "/api/notification/{id}": {
      "delete": {
        "operationId": "NotificationController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "Notification"
        ]
      }
    },
    "/api/fasting-events": {
      "post": {
        "operationId": "FastingEventController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFastingEventDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "FastingEvent"
        ]
      },
      "get": {
        "operationId": "FastingEventController_getFastingEvents",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "date",
            "required": false,
            "in": "query",
            "description": "Filter by Date",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "FastingEvent"
        ]
      }
    },
    "/api/fasting-events/month": {
      "get": {
        "operationId": "FastingEventController_getMonthlyFastingEvents",
        "parameters": [
          {
            "name": "page",
            "required": false,
            "in": "query",
            "description": "Page number for pagination",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "required": false,
            "in": "query",
            "description": "Number of items per page",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "month",
            "required": false,
            "in": "query",
            "description": "Filter by Month and Year (MM-YYYY)",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "FastingEvent"
        ]
      }
    },
    "/api/report-posts": {
      "post": {
        "operationId": "ReportPostController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateReportPostDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "ReportPost"
        ]
      },
      "get": {
        "operationId": "ReportPostController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "ReportPost"
        ]
      }
    },
    "/api/report-posts/{id}": {
      "get": {
        "operationId": "ReportPostController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "ReportPost"
        ]
      },
      "patch": {
        "operationId": "ReportPostController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateReportPostDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "ReportPost"
        ]
      },
      "delete": {
        "operationId": "ReportPostController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "ReportPost"
        ]
      }
    },
    "/api/hide-posts": {
      "post": {
        "operationId": "HidePostsController_create",
        "parameters": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateHidePostDto"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "HidePosts"
        ]
      },
      "get": {
        "operationId": "HidePostsController_findAll",
        "parameters": [],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "HidePosts"
        ]
      }
    },
    "/api/hide-posts/{id}": {
      "get": {
        "operationId": "HidePostsController_findOne",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "HidePosts"
        ]
      },
      "patch": {
        "operationId": "HidePostsController_update",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateHidePostDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "HidePosts"
        ]
      },
      "delete": {
        "operationId": "HidePostsController_remove",
        "parameters": [
          {
            "name": "id",
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          }
        },
        "security": [
          {
            "Authorization": []
          }
        ],
        "tags": [
          "HidePosts"
        ]
      }
    }
  },
  "info": {
    "title": "Oman Morales Platform API",
    "description": "This is the api documentation of Oman Morales API",
    "version": "1.0.0",
    "contact": {}
  },
  "tags": [],
  "servers": [],
  "components": {
    "securitySchemes": {
      "Authorization": {
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "type": "http",
        "name": "Authorization",
        "in": "header"
      }
    },
    "schemas": {
      "UploadFileDto": {
        "type": "object",
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "single",
              "multiple"
            ]
          },
          "file": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "binary"
            }
          }
        },
        "required": [
          "mode"
        ]
      },
      "UserDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "admin",
              "super-admin"
            ]
          },
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female",
              "other"
            ]
          },
          "activity_level": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "mobile_no": {
            "type": "string"
          },
          "age": {
            "type": "number"
          },
          "weight_type": {
            "type": "string",
            "enum": [
              "kg",
              "lb"
            ]
          },
          "weight": {
            "type": "number"
          },
          "height_type": {
            "type": "string",
            "enum": [
              "cm",
              "ft"
            ]
          },
          "height": {
            "type": "number"
          },
          "weight_goal_type": {
            "type": "string",
            "enum": [
              "kg",
              "lb"
            ]
          },
          "weight_goal": {
            "type": "number"
          },
          "daily_meal_intake": {
            "type": "string",
            "enum": [
              "1-2",
              "3-4",
              "5+"
            ]
          },
          "password": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "country": {
            "type": "string"
          }
        },
        "required": [
          "role",
          "email"
        ]
      },
      "UpdateUserDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "admin",
              "super-admin"
            ]
          },
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female",
              "other"
            ]
          },
          "activity_level": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "mobile_no": {
            "type": "string"
          },
          "age": {
            "type": "number"
          },
          "weight_type": {
            "type": "string",
            "enum": [
              "kg",
              "lb"
            ]
          },
          "weight": {
            "type": "number"
          },
          "height_type": {
            "type": "string",
            "enum": [
              "cm",
              "ft"
            ]
          },
          "height": {
            "type": "number"
          },
          "weight_goal_type": {
            "type": "string",
            "enum": [
              "kg",
              "lb"
            ]
          },
          "weight_goal": {
            "type": "number"
          },
          "daily_meal_intake": {
            "type": "string",
            "enum": [
              "1-2",
              "3-4",
              "5+"
            ]
          },
          "password": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "country_code": {
            "type": "string"
          },
          "country": {
            "type": "string"
          }
        }
      },
      "LoginDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "device_token": {
            "type": "string"
          },
          "device": {
            "type": "number"
          }
        },
        "required": [
          "email",
          "password",
          "device_token",
          "device"
        ]
      },
      "LogoutDto": {
        "type": "object",
        "properties": {
          "device_token": {
            "type": "string"
          }
        },
        "required": [
          "device_token"
        ]
      },
      "SocialLoginDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "admin",
              "super-admin"
            ]
          },
          "email": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          },
          "platform": {
            "type": "string",
            "enum": [
              "google",
              "facebook",
              "linkedin",
              "twitter",
              "apple"
            ]
          },
          "platform_id": {
            "type": "string"
          },
          "device": {
            "type": "number",
            "enum": [
              0,
              1,
              2
            ]
          },
          "device_token": {
            "type": "string"
          }
        },
        "required": [
          "role",
          "platform",
          "platform_id",
          "device",
          "device_token"
        ]
      },
      "VerifyCodeDTO": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          },
          "code": {
            "type": "string"
          }
        },
        "required": [
          "email",
          "code"
        ]
      },
      "ForgotDto": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string"
          }
        },
        "required": [
          "email"
        ]
      },
      "ResetPaswordDto": {
        "type": "object",
        "properties": {
          "reset_password_token": {
            "type": "string"
          },
          "password": {
            "type": "string"
          }
        },
        "required": [
          "reset_password_token",
          "password"
        ]
      },
      "ChangePaswordDto": {
        "type": "object",
        "properties": {
          "oldPassword": {
            "type": "string"
          },
          "newPassword": {
            "type": "string"
          }
        },
        "required": [
          "oldPassword",
          "newPassword"
        ]
      },
      "MediaDTO": {
        "type": "object",
        "properties": {}
      },
      "CreatePostDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "media": {
            "description": "Array of media with their respective type and thumbnail",
            "example": [
              {
                "file": "https://res.cloudinary.com/dxyb4xgcs/image/upload/v1723172250/user-placeholder_hhrfnj.png",
                "type": "image"
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaDTO"
            }
          }
        }
      },
      "UpdatePostDto": {
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "media": {
            "description": "Array of media with their respective type and thumbnail",
            "example": [
              {
                "file": "https://res.cloudinary.com/dxyb4xgcs/image/upload/v1723172250/user-placeholder_hhrfnj.png",
                "type": "image"
              }
            ],
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaDTO"
            }
          }
        }
      },
      "CreatePostLikeDto": {
        "type": "object",
        "properties": {
          "post": {
            "type": "string"
          },
          "isLike": {
            "type": "boolean"
          }
        },
        "required": [
          "post",
          "isLike"
        ]
      },
      "CreatePostCommentDto": {
        "type": "object",
        "properties": {
          "post": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "parent_comment": {
            "type": "string"
          }
        },
        "required": [
          "post",
          "text"
        ]
      },
      "CreateMealDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "meal_time": {
            "type": "string"
          },
          "calories": {
            "type": "number"
          },
          "protein": {
            "type": "number"
          },
          "carbs": {
            "type": "number"
          },
          "fats": {
            "type": "number"
          },
          "note": {
            "description": "List of notes or ingredients related to the meal",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "image_url": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "note"
        ]
      },
      "AnalyzeFileDto": {
        "type": "object",
        "properties": {
          "image": {
            "type": "string"
          }
        },
        "required": [
          "image"
        ]
      },
      "UpdateMealDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "meal_time": {
            "type": "string"
          },
          "calories": {
            "type": "number"
          },
          "protein": {
            "type": "number"
          },
          "carbs": {
            "type": "number"
          },
          "fats": {
            "type": "number"
          },
          "note": {
            "description": "List of notes or ingredients related to the meal",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "image_url": {
            "type": "string"
          }
        }
      },
      "CreateCommentLikeDto": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "string"
          },
          "isLike": {
            "type": "boolean"
          }
        },
        "required": [
          "comment",
          "isLike"
        ]
      },
      "CreateFastingDto": {
        "type": "object",
        "properties": {
          "fasting_style": {
            "type": "string"
          },
          "fasting_type": {
            "type": "string"
          },
          "intermittent_fasting_type": {
            "type": "string"
          },
          "start_time": {
            "type": "string"
          },
          "end_time": {
            "type": "string"
          },
          "meal_start_time": {
            "type": "string"
          },
          "meal_end_time": {
            "type": "string"
          },
          "fasting_date": {
            "type": "string"
          },
          "fasting_end_date": {
            "type": "string"
          },
          "fasting_day": {
            "description": "Array of fasting days",
            "example": [
              "Wed",
              "Thu",
              "Fri"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "is_repeated_weekly": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "fasting_style",
          "fasting_type",
          "intermittent_fasting_type",
          "start_time",
          "end_time",
          "fasting_day"
        ]
      },
      "UpdateFastingDto": {
        "type": "object",
        "properties": {
          "fasting_style": {
            "type": "string"
          },
          "fasting_type": {
            "type": "string"
          },
          "intermittent_fasting_type": {
            "type": "string"
          },
          "start_time": {
            "type": "string"
          },
          "end_time": {
            "type": "string"
          },
          "meal_start_time": {
            "type": "string"
          },
          "meal_end_time": {
            "type": "string"
          },
          "fasting_date": {
            "type": "string"
          },
          "fasting_end_date": {
            "type": "string"
          },
          "fasting_day": {
            "description": "Array of fasting days",
            "example": [
              "Wed",
              "Thu",
              "Fri"
            ],
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "is_repeated_weekly": {
            "type": "boolean",
            "default": false
          }
        }
      },
      "CreateChatGroupDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "description"
        ]
      },
      "UpdateChatDto": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "image_url": {
            "type": "string"
          }
        }
      },
      "JoinMultipleGroupDto": {
        "type": "object",
        "properties": {
          "chat_rooms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "chat_rooms"
        ]
      },
      "CreateReportChatRoomDto": {
        "type": "object",
        "properties": {
          "chat_room": {
            "type": "string"
          }
        },
        "required": [
          "chat_room"
        ]
      },
      "SendMessageDto": {
        "type": "object",
        "properties": {
          "chat_room": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "attachment": {
            "description": "file urls",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "chat_room",
          "type"
        ]
      },
      "JoinGroupDto": {
        "type": "object",
        "properties": {
          "chat_room": {
            "type": "string"
          }
        },
        "required": [
          "chat_room"
        ]
      },
      "CreateFastingEventDto": {
        "type": "object",
        "properties": {
          "actual_start_time": {
            "type": "string"
          },
          "actual_end_time": {
            "type": "string"
          },
          "fasting": {
            "type": "string"
          },
          "fasting_date": {
            "type": "string"
          },
          "fasting_end_date": {
            "type": "string"
          },
          "is_completed": {
            "type": "boolean"
          },
          "is_started": {
            "type": "boolean"
          }
        },
        "required": [
          "fasting"
        ]
      },
      "CreateReportPostDto": {
        "type": "object",
        "properties": {
          "post": {
            "type": "string"
          }
        },
        "required": [
          "post"
        ]
      },
      "UpdateReportPostDto": {
        "type": "object",
        "properties": {
          "post": {
            "type": "string"
          }
        }
      },
      "CreateHidePostDto": {
        "type": "object",
        "properties": {
          "post": {
            "type": "string"
          }
        },
        "required": [
          "post"
        ]
      },
      "UpdateHidePostDto": {
        "type": "object",
        "properties": {
          "post": {
            "type": "string"
          }
        }
      }
    }
  }
}