openapi: 3.0.3
info:
  title: 'Taskify API Documentation'
  description: 'This is the API documentation for the taskify.'
  version: 1.0.0
servers:
  -
    url: 'http://localhost:8000'
paths:
  /api/user/fcm-token:
    patch:
      summary: 'Update FCM Token.'
      operationId: updateFCMToken
      description: 'This endpoint allows an authenticated user or client to update their FCM token for push notifications.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'FCM token updated successfully.'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'FCM token updated successfully.'
      tags:
        - Endpoints
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fcm_token:
                  type: string
                  description: 'The new FCM token for push notifications.'
                  example: 'dXkJz7KYZ9o:APA91bGfLa_qwAeD...'
              required:
                - fcm_token
      security: []
  /api/users/signup:
    post:
      summary: 'Register a new user.'
      operationId: registerANewUser
      description: 'This endpoint allows a new user to sign up by providing necessary details.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n\"error\": false,\n\"message\": \"Account created successfully.\",\n\"data\": {\n\"id\": 225,\n\"first_name\": \"Test\",\n\"last_name\": \"User\",\n\"role\": \"admin\",\n\"email\": \"test.user@example.com\",\n\"phone\": null,\n\"dob\": null,\n\"doj\": null,\n\"address\": null,\n\"city\": null,\n\"state\": null,\n\"country\": null,\n\"zip\": null,\n\"photo\": \"https://test-taskify.infinitietech.com/storage/photos/no-image.jpg\",\n\"status\": 0,\n\"created_at\": \"13-08-2024 14:59:38\",\n\"updated_at\": \"13-08-2024 14:59:38\"\n\"assigned\": {\n\"projects\": 0,\n\"tasks\": 0\n}\n}\n}"
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    email:
                      - 'The email field is required.'
                      - 'The email has already been taken.'
                    password:
                      - 'The password must be at least 6 characters.'
                    role:
                      - 'The role field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      email:
                        type: array
                        example:
                          - 'The email field is required.'
                          - 'The email has already been taken.'
                        items:
                          type: string
                      password:
                        type: array
                        example:
                          - 'The password must be at least 6 characters.'
                        items:
                          type: string
                      role:
                        type: array
                        example:
                          - 'The role field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Account couldn't be created, please contact the admin for assistance."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Account couldn't be created, please contact the admin for assistance."
      tags:
        - 'User Authentication'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                type:
                  type: string
                  description: "The type of account ('member' for team member, 'client' for client)."
                  example: member
                first_name:
                  type: string
                  description: 'The first name of the user.'
                  example: John
                last_name:
                  type: string
                  description: 'The last name of the user.'
                  example: Doe
                email:
                  type: string
                  description: 'The email address of the user or client.'
                  example: john.doe@example.com
                password:
                  type: string
                  description: 'The password for the account.'
                  example: password123
                password_confirmation:
                  type: string
                  description: "The confirmation of the password. Must match 'password'."
                  example: password123
                company:
                  type: string
                  description: 'nullable The company name.'
                  example: 'Acme Inc.'
                fcm_token:
                  type: string
                  description: 'nullable The optional FCM token for push notifications.'
                  example: cXJ1AqT6B...
              required:
                - type
                - first_name
                - last_name
                - email
                - password
                - password_confirmation
      security: []
  /api/users/login:
    post:
      summary: 'Log in an existing user.'
      operationId: logInAnExistingUser
      description: 'This endpoint allows a user to log in by providing their email and password. Upon successful authentication, a token is returned for accessing protected resources.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Logged in successfully.'
                  token: 15|ANl9HwfqiiUxdOmNWba5qKhzfk3h1fyi8ZUoYbH8de8d3534
                  data:
                    user_id: 7
                    workspace_id: 6
                    my_locale: en
                    locale: en
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Logged in successfully.'
                  token:
                    type: string
                    example: 15|ANl9HwfqiiUxdOmNWba5qKhzfk3h1fyi8ZUoYbH8de8d3534
                  data:
                    type: object
                    properties:
                      user_id:
                        type: integer
                        example: 7
                      workspace_id:
                        type: integer
                        example: 6
                      my_locale:
                        type: string
                        example: en
                      locale:
                        type: string
                        example: en
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: Unauthorized
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Unauthorized
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    email:
                      - 'The email field is required.'
                    password:
                      - 'The password field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      email:
                        type: array
                        example:
                          - 'The email field is required.'
                        items:
                          type: string
                      password:
                        type: array
                        example:
                          - 'The password field is required.'
                        items:
                          type: string
      tags:
        - 'User Authentication'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: john.doe@example.com
                password:
                  type: string
                  description: 'The password for the user.'
                  example: password123
                fcm_token:
                  type: string
                  description: 'nullable The optional FCM token for push notifications.'
                  example: cXJ1AqT6B...
              required:
                - email
                - password
      security: []
  /api/password/reset-request:
    post:
      summary: 'Send Password Reset Link.'
      operationId: sendPasswordResetLink
      description: 'This endpoint allows a user or client to request a password reset link by providing their email and account type.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Password reset link emailed successfully.'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Password reset link emailed successfully.'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Account not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Account not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Password reset link couldn't be sent, please check email settings."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Password reset link couldn't be sent, please check email settings."
      tags:
        - 'User Authentication'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email address of the user or client.'
                  example: john.doe@example.com
                account_type:
                  type: string
                  description: "The type of account ('user' for normal users, 'client' for clients)."
                  example: user
              required:
                - email
                - account_type
      security: []
  /api/password/reset:
    post:
      summary: 'Reset Password.'
      operationId: resetPassword
      description: 'This endpoint allows a user or client to reset their password using a valid token.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Password has been reset successfully.'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Password has been reset successfully.'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Account not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Account not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Password reset failed. Please try again later.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Password reset failed. Please try again later.'
      tags:
        - 'User Authentication'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: 'The password reset token provided via the reset link.'
                  example: abc123
                email:
                  type: string
                  description: 'The email address of the user or client.'
                  example: john.doe@example.com
                password:
                  type: string
                  description: 'The new password for the account. Must be at least 6 characters and confirmed.'
                  example: newPassword123
                password_confirmation:
                  type: string
                  description: "The confirmation of the new password. Must match 'password'."
                  example: newPassword123
                account_type:
                  type: string
                  description: "The type of account ('user' for normal users, 'client' for clients)."
                  example: user
              required:
                - token
                - email
                - password
                - password_confirmation
                - account_type
      security: []
  /api/user:
    get:
      summary: "Retrieve the authenticated user's profile."
      operationId: retrieveTheAuthenticatedUsersProfile
      description: 'This endpoint returns the profile information of the currently authenticated user. The user must be authenticated to access their profile details.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Profile details retrieved successfully'
                  data:
                    id: 7
                    first_name: Madhavan
                    last_name: Vaidya
                    role: admin
                    email: admin@gmail.com
                    phone: '9099882203'
                    dob: 17-06-2024
                    doj: 03-10-2022
                    address: Devonshire
                    city: Windsor
                    state: 'ON'
                    country: Canada
                    zip: '123654'
                    photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    status: 1
                    created_at: '03-01-2023 10:37:20'
                    updated_at: '13-08-2024 14:16:45'
                    assigned:
                      projects: 11
                      tasks: 9
                    is_admin_or_leave_editor: true
                    is_admin_or_has_all_data_access: true
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Profile details retrieved successfully'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 7
                      first_name:
                        type: string
                        example: Madhavan
                      last_name:
                        type: string
                        example: Vaidya
                      role:
                        type: string
                        example: admin
                      email:
                        type: string
                        example: admin@gmail.com
                      phone:
                        type: string
                        example: '9099882203'
                      dob:
                        type: string
                        example: 17-06-2024
                      doj:
                        type: string
                        example: 03-10-2022
                      address:
                        type: string
                        example: Devonshire
                      city:
                        type: string
                        example: Windsor
                      state:
                        type: string
                        example: 'ON'
                      country:
                        type: string
                        example: Canada
                      zip:
                        type: string
                        example: '123654'
                      photo:
                        type: string
                        example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      status:
                        type: integer
                        example: 1
                      created_at:
                        type: string
                        example: '03-01-2023 10:37:20'
                      updated_at:
                        type: string
                        example: '13-08-2024 14:16:45'
                      assigned:
                        type: object
                        properties:
                          projects:
                            type: integer
                            example: 11
                          tasks:
                            type: integer
                            example: 9
                      is_admin_or_leave_editor:
                        type: boolean
                        example: true
                      is_admin_or_has_all_data_access:
                        type: boolean
                        example: true
      tags:
        - 'Profile Management'
  /api/users/photo:
    post:
      summary: 'Update the profile picture of a logged-in user or a specified user/client.'
      operationId: updateTheProfilePictureOfALoggedInUserOrASpecifiedUserclient
      description: "This endpoint allows the authenticated user to update their profile picture.\nIf both `id` and `type` are provided, the profile picture for the specified user or client will be updated.\nIf not, the profile picture of the logged-in user will be updated."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Profile picture updated successfully.'
                      data:
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        role: admin
                        email: admin@gmail.com
                        phone: '9099882203'
                        dob: 17-06-2024
                        doj: 03-10-2022
                        address: Devonshire
                        city: Windsor
                        state: 'ON'
                        country: Canada
                        zip: '123654'
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/atEj9NKCeAJhM5VqBN69mFKHntHbZkPUl2Sa22RA.webp'
                        status: 1
                        created_at: '03-01-2023 10:37:20'
                        updated_at: '13-08-2024 18:58:34'
                        assigned:
                          projects: 11
                          tasks: 21
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Profile picture updated successfully.'
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 7
                          first_name:
                            type: string
                            example: Madhavan
                          last_name:
                            type: string
                            example: Vaidya
                          role:
                            type: string
                            example: admin
                          email:
                            type: string
                            example: admin@gmail.com
                          phone:
                            type: string
                            example: '9099882203'
                          dob:
                            type: string
                            example: 17-06-2024
                          doj:
                            type: string
                            example: 03-10-2022
                          address:
                            type: string
                            example: Devonshire
                          city:
                            type: string
                            example: Windsor
                          state:
                            type: string
                            example: 'ON'
                          country:
                            type: string
                            example: Canada
                          zip:
                            type: string
                            example: '123654'
                          photo:
                            type: string
                            example: 'https://test-taskify.infinitietech.com/storage/photos/atEj9NKCeAJhM5VqBN69mFKHntHbZkPUl2Sa22RA.webp'
                          status:
                            type: integer
                            example: 1
                          created_at:
                            type: string
                            example: '03-01-2023 10:37:20'
                          updated_at:
                            type: string
                            example: '13-08-2024 18:58:34'
                          assigned:
                            type: object
                            properties:
                              projects:
                                type: integer
                                example: 11
                              tasks:
                                type: integer
                                example: 21
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'No profile picture selected!'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'No profile picture selected!'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'User not found'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'User not found'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Profile picture couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Profile picture couldn't be updated."
      tags:
        - 'Profile Management'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the user or client whose profile picture is being updated. Required if `type` is provided.'
                  example: 1
                type:
                  type: string
                  description: "The type of the entity whose profile picture is being updated. Must be either 'user' or 'client'."
                  example: user
                upload:
                  type: string
                  format: binary
                  description: 'The file of the new profile picture to be uploaded.'
              required:
                - id
                - type
                - upload
  '/api/users/{id}/profile':
    post:
      summary: 'Update the profile details of a logged-in user.'
      operationId: updateTheProfileDetailsOfALoggedInUser
      description: 'This endpoint allows the authenticated user to update their profile details such as name, email, address, and other relevant information.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Profile details updated successfully.'
                      data:
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        role: admin
                        email: admin@gmail.com
                        phone: '9099882203'
                        dob: 17-06-2024
                        doj: 03-10-2022
                        address: Devonshire
                        city: Windsor
                        state: 'ON'
                        country: Canada
                        zip: '123654'
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/atEj9NKCeAJhM5VqBN69mFKHntHbZkPUl2Sa22RA.webp'
                        status: 1
                        created_at: '03-01-2023 10:37:20'
                        updated_at: '13-08-2024 18:58:34'
                        assigned:
                          projects: 11
                          tasks: 21
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Profile details updated successfully.'
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 7
                          first_name:
                            type: string
                            example: Madhavan
                          last_name:
                            type: string
                            example: Vaidya
                          role:
                            type: string
                            example: admin
                          email:
                            type: string
                            example: admin@gmail.com
                          phone:
                            type: string
                            example: '9099882203'
                          dob:
                            type: string
                            example: 17-06-2024
                          doj:
                            type: string
                            example: 03-10-2022
                          address:
                            type: string
                            example: Devonshire
                          city:
                            type: string
                            example: Windsor
                          state:
                            type: string
                            example: 'ON'
                          country:
                            type: string
                            example: Canada
                          zip:
                            type: string
                            example: '123654'
                          photo:
                            type: string
                            example: 'https://test-taskify.infinitietech.com/storage/photos/atEj9NKCeAJhM5VqBN69mFKHntHbZkPUl2Sa22RA.webp'
                          status:
                            type: integer
                            example: 1
                          created_at:
                            type: string
                            example: '03-01-2023 10:37:20'
                          updated_at:
                            type: string
                            example: '13-08-2024 18:58:34'
                          assigned:
                            type: object
                            properties:
                              projects:
                                type: integer
                                example: 11
                              tasks:
                                type: integer
                                example: 21
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Validation error: The email has already been taken.'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Validation error: The email has already been taken.'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'User not found'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'User not found'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"error\": true,\n  \"message\": \"Profile details couldn\\'t be updated.\"\n}"
      tags:
        - 'Profile Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: "The user's first name."
                  example: Madhavan
                last_name:
                  type: string
                  description: "The user's last name."
                  example: Vaidya
                email:
                  type: string
                  description: "The user's email address. Can only be edited if `is_admin_or_has_all_data_access` is true for the logged-in user."
                  example: admin@gmail.com
                role:
                  type: integer
                  description: 'The ID of the role for the user. If the authenticated user is an admin, the provided role will be used. If the authenticated user is not an admin, the current role of the user will be used, regardless of the input.'
                  example: 1
                phone:
                  type: string
                  description: "The user's phone number."
                  example: '9099882203'
                country_code:
                  type: string
                  description: 'The country code for the phone number.'
                  example: '+91'
                country_iso_code:
                  type: string
                  description: 'nullable The ISO code for the phone number.'
                  example: in
                dob:
                  type: date
                  description: "The user's date of birth."
                  example: 17-06-2024
                doj:
                  type: date
                  description: "The user's date of joining."
                  example: 03-10-2022
                address:
                  type: string
                  description: "The user's address."
                  example: Devonshire
                city:
                  type: string
                  description: "The user's city."
                  example: Windsor
                state:
                  type: string
                  description: "The user's state."
                  example: 'ON'
                country:
                  type: string
                  description: "The user's country."
                  example: Canada
                zip:
                  type: string
                  description: "The user's zip code."
                  example: '123654'
                password:
                  type: string
                  description: "The user's new password (if changing)."
                  example: '12345678'
                password_confirmation:
                  type: string
                  description: 'The password confirmation (if changing password).'
                  example: '12345678'
              required:
                - first_name
                - last_name
                - email
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the user whose profile is being updated.'
        example: 2
        required: true
        schema:
          type: integer
  /api/account/destroy:
    delete:
      summary: 'Delete account of a logged-in user.'
      operationId: deleteAccountOfALoggedInUser
      description: 'This endpoint allows the authenticated user to delete their account.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"error\": false,\n  \"message\": \"Account deleted successfully.\"\n  \"data\": []\n}"
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'User not found'
                  data: []
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'User not found'
                  data:
                    type: array
                    example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Account couldn't be deleted."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Account couldn't be deleted."
      tags:
        - 'Profile Management'
  /api/upcoming-birthdays:
    get:
      summary: 'List or search users with birthdays today or upcoming.'
      operationId: listOrSearchUsersWithBirthdaysTodayOrUpcoming
      description: 'This endpoint retrieves a list of users with birthdays occurring today or within a specified range of days. The user must be authenticated to perform this action.'
      parameters:
        -
          in: query
          name: search
          description: 'Optional. The search term to filter users by first name or last name or combination of first name and last name or User ID or date of birth.'
          example: John
          required: false
          schema:
            type: string
            description: 'Optional. The search term to filter users by first name or last name or combination of first name and last name or User ID or date of birth.'
            example: John
        -
          in: query
          name: order
          description: 'Optional. The sort order for the `dob` column. Acceptable values are `ASC` or `DESC`. Default is `ASC`.'
          example: DESC
          required: false
          schema:
            type: string
            description: 'Optional. The sort order for the `dob` column. Acceptable values are `ASC` or `DESC`. Default is `ASC`.'
            example: DESC
        -
          in: query
          name: upcoming_days
          description: 'Optional. The number of days from today to consider for upcoming birthdays. Default is 30.'
          example: 15
          required: false
          schema:
            type: integer
            description: 'Optional. The number of days from today to consider for upcoming birthdays. Default is 30.'
            example: 15
        -
          in: query
          name: user_ids
          description: 'Optional. The specific user IDs to filter the results.'
          example:
            - 123
            - 456
          required: false
          schema:
            type: array
            description: 'Optional. The specific user IDs to filter the results.'
            example:
              - 123
              - 456
            items:
              type: string
        -
          in: query
          name: limit
          description: 'Optional. The number of results to return per page. Default is 15.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'Optional. The number of results to return per page. Default is 15.'
            example: 10
        -
          in: query
          name: offset
          description: 'Optional. The number of results to skip before starting to collect the result set. Default is 0.'
          example: 5
          required: false
          schema:
            type: integer
            description: 'Optional. The number of results to skip before starting to collect the result set. Default is 0.'
            example: 5
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Upcoming birthdays retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 1
                          member: 'John Doe'
                          photo: 'http://example.com/storage/photos/john_doe.jpg'
                          birthday_count: 30
                          days_left: 10
                          dob: 'Tue, 2024-08-08'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Upcoming birthdays retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            member: 'John Doe'
                            photo: 'http://example.com/storage/photos/john_doe.jpg'
                            birthday_count: 30
                            days_left: 10
                            dob: 'Tue, 2024-08-08'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            member:
                              type: string
                              example: 'John Doe'
                            photo:
                              type: string
                              example: 'http://example.com/storage/photos/john_doe.jpg'
                            birthday_count:
                              type: integer
                              example: 30
                            days_left:
                              type: integer
                              example: 10
                            dob:
                              type: string
                              example: 'Tue, 2024-08-08'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Upcoming birthdays not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Upcoming birthdays not found.'
                      data:
                        type: array
                        example: []
      tags:
        - 'Dashboard Management'
  /api/upcoming-work-anniversaries:
    get:
      summary: 'List or search users with work anniversaries today or upcoming.'
      operationId: listOrSearchUsersWithWorkAnniversariesTodayOrUpcoming
      description: 'This endpoint retrieves a list of users with work anniversaries occurring today or within a specified range of days. The user must be authenticated to perform this action.'
      parameters:
        -
          in: query
          name: search
          description: 'Optional. The search term to filter users by first name or last name or combination of first name and last name or User ID or date of joining.'
          example: John
          required: false
          schema:
            type: string
            description: 'Optional. The search term to filter users by first name or last name or combination of first name and last name or User ID or date of joining.'
            example: John
        -
          in: query
          name: order
          description: 'Optional. The sort order for the `doj` column. Acceptable values are `ASC` or `DESC`. Default is `ASC`.'
          example: DESC
          required: false
          schema:
            type: string
            description: 'Optional. The sort order for the `doj` column. Acceptable values are `ASC` or `DESC`. Default is `ASC`.'
            example: DESC
        -
          in: query
          name: upcoming_days
          description: 'Optional. The number of days from today to consider for upcoming work anniversaries. Default is 30.'
          example: 15
          required: false
          schema:
            type: integer
            description: 'Optional. The number of days from today to consider for upcoming work anniversaries. Default is 30.'
            example: 15
        -
          in: query
          name: user_ids
          description: 'Optional. The specific user IDs to filter the results.'
          example:
            - 123
            - 456
          required: false
          schema:
            type: array
            description: 'Optional. The specific user IDs to filter the results.'
            example:
              - 123
              - 456
            items:
              type: string
        -
          in: query
          name: limit
          description: 'Optional. The number of results to return per page. Default is 15.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'Optional. The number of results to return per page. Default is 15.'
            example: 10
        -
          in: query
          name: offset
          description: 'Optional. The number of results to skip before starting to collect the result set. Default is 0.'
          example: 5
          required: false
          schema:
            type: integer
            description: 'Optional. The number of results to skip before starting to collect the result set. Default is 0.'
            example: 5
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Upcoming work anniversaries retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 1
                          member: 'John Doe'
                          photo: 'http://example.com/storage/photos/john_doe.jpg'
                          anniversary_count: 5
                          days_left: 10
                          doj: 'Tue, 2024-08-08'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Upcoming work anniversaries retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            member: 'John Doe'
                            photo: 'http://example.com/storage/photos/john_doe.jpg'
                            anniversary_count: 5
                            days_left: 10
                            doj: 'Tue, 2024-08-08'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            member:
                              type: string
                              example: 'John Doe'
                            photo:
                              type: string
                              example: 'http://example.com/storage/photos/john_doe.jpg'
                            anniversary_count:
                              type: integer
                              example: 5
                            days_left:
                              type: integer
                              example: 10
                            doj:
                              type: string
                              example: 'Tue, 2024-08-08'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Upcoming work anniversaries not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Upcoming work anniversaries not found.'
                      data:
                        type: array
                        example: []
      tags:
        - 'Dashboard Management'
  /api/members-on-leave:
    get:
      summary: 'List members currently on leave or scheduled to be on leave.'
      operationId: listMembersCurrentlyOnLeaveOrScheduledToBeOnLeave
      description: "This endpoint retrieves a list of members who are currently on leave or scheduled to be on leave within a specified range of days.\nThe user must be authenticated to perform this action."
      parameters:
        -
          in: query
          name: search
          description: 'Optional. The search term to filter users by first name or last name or combination of first name and last name or User ID or date of joining.'
          example: John
          required: false
          schema:
            type: string
            description: 'Optional. The search term to filter users by first name or last name or combination of first name and last name or User ID or date of joining.'
            example: John
        -
          in: query
          name: sort
          description: 'Optional. The field to sort by. Acceptable values are `from_date` and `to_date`. Default is `from_date`.'
          example: to_date
          required: false
          schema:
            type: string
            description: 'Optional. The field to sort by. Acceptable values are `from_date` and `to_date`. Default is `from_date`.'
            example: to_date
        -
          in: query
          name: order
          description: 'Optional. The sort order. Acceptable values are `ASC` or `DESC`. Default is `ASC`.'
          example: DESC
          required: false
          schema:
            type: string
            description: 'Optional. The sort order. Acceptable values are `ASC` or `DESC`. Default is `ASC`.'
            example: DESC
        -
          in: query
          name: upcoming_days
          description: 'Optional. The number of days from today to consider for upcoming leave. Default is 30.'
          example: 15
          required: false
          schema:
            type: integer
            description: 'Optional. The number of days from today to consider for upcoming leave. Default is 30.'
            example: 15
        -
          in: query
          name: user_ids
          description: 'Optional. The specific user IDs to filter the results.'
          example:
            - 123
            - 456
          required: false
          schema:
            type: array
            description: 'Optional. The specific user IDs to filter the results.'
            example:
              - 123
              - 456
            items:
              type: string
        -
          in: query
          name: limit
          description: 'Optional. The number of results to return per page. Default is 15.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'Optional. The number of results to return per page. Default is 15.'
            example: 10
        -
          in: query
          name: offset
          description: 'Optional. The number of results to skip before starting to collect the result set. Default is 0.'
          example: 5
          required: false
          schema:
            type: integer
            description: 'Optional. The number of results to skip before starting to collect the result set. Default is 0.'
            example: 5
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Members on leave retrieved successfully.'
                      total: 1
                      data:
                        -
                          id: 1
                          member: 'John Doe'
                          photo: 'http://example.com/storage/photos/john_doe.jpg'
                          from_date: 'Mon, 2024-07-15'
                          to_date: 'Fri, 2024-07-19'
                          type: Full
                          duration: '5 days'
                          days_left: 0
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Members on leave retrieved successfully.'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            member: 'John Doe'
                            photo: 'http://example.com/storage/photos/john_doe.jpg'
                            from_date: 'Mon, 2024-07-15'
                            to_date: 'Fri, 2024-07-19'
                            type: Full
                            duration: '5 days'
                            days_left: 0
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            member:
                              type: string
                              example: 'John Doe'
                            photo:
                              type: string
                              example: 'http://example.com/storage/photos/john_doe.jpg'
                            from_date:
                              type: string
                              example: 'Mon, 2024-07-15'
                            to_date:
                              type: string
                              example: 'Fri, 2024-07-19'
                            type:
                              type: string
                              example: Full
                            duration:
                              type: string
                              example: '5 days'
                            days_left:
                              type: integer
                              example: 0
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Members on leave not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Members on leave not found.'
                      data:
                        type: array
                        example: []
      tags:
        - 'Dashboard Management'
  /api/dashboard/statistics:
    get:
      summary: 'Get Statistics'
      operationId: getStatistics
      description: 'This endpoint retrieves workspace-specific statistics related to projects, tasks, users, clients, todos, and meetings. The user must be authenticated and have the necessary permissions to manage (if applicable) each respective module.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Statistics retrieved successfully'
                  data:
                    total_projects: 8
                    total_tasks: 8
                    total_users: 8
                    total_clients: 8
                    total_meetings: 8
                    total_todos: 0
                    completed_todos: 0
                    pending_todos: 0
                    status_wise_projects:
                      -
                        id: 1
                        title: 'In Progress'
                        color: primary
                        total_projects: 4
                      -
                        id: 2
                        title: Completed
                        color: success
                        total_projects: 4
                    status_wise_tasks:
                      -
                        id: 1
                        title: 'In Progress'
                        color: primary
                        total_tasks: 4
                      -
                        id: 2
                        title: Completed
                        color: success
                        total_tasks: 4
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Statistics retrieved successfully'
                  data:
                    type: object
                    properties:
                      total_projects:
                        type: integer
                        example: 8
                      total_tasks:
                        type: integer
                        example: 8
                      total_users:
                        type: integer
                        example: 8
                      total_clients:
                        type: integer
                        example: 8
                      total_meetings:
                        type: integer
                        example: 8
                      total_todos:
                        type: integer
                        example: 0
                      completed_todos:
                        type: integer
                        example: 0
                      pending_todos:
                        type: integer
                        example: 0
                      status_wise_projects:
                        type: array
                        example:
                          -
                            id: 1
                            title: 'In Progress'
                            color: primary
                            total_projects: 4
                          -
                            id: 2
                            title: Completed
                            color: success
                            total_projects: 4
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            title:
                              type: string
                              example: 'In Progress'
                            color:
                              type: string
                              example: primary
                            total_projects:
                              type: integer
                              example: 4
                      status_wise_tasks:
                        type: array
                        example:
                          -
                            id: 1
                            title: 'In Progress'
                            color: primary
                            total_tasks: 4
                          -
                            id: 2
                            title: Completed
                            color: success
                            total_tasks: 4
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            title:
                              type: string
                              example: 'In Progress'
                            color:
                              type: string
                              example: primary
                            total_tasks:
                              type: integer
                              example: 4
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while retrieving statistics: Internal server error message'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while retrieving statistics: Internal server error message'
      tags:
        - 'Dashboard Management'
  '/api/projects/{id}':
    get:
      summary: 'List or search projects.'
      operationId: listOrSearchProjects
      description: 'This endpoint retrieves a list of projects based on various filters. The user must be authenticated to perform this action. The request allows filtering by status, user, client, priority, tag, date ranges, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter projects by title or id.'
          example: Project
          required: false
          schema:
            type: string
            description: 'optional The search term to filter projects by title or id.'
            example: Project
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, status, priority, start_date, end_date, budget, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, status, priority, start_date, end_date, budget, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: status_ids
          description: 'optional An array of status IDs to filter projects by.'
          example:
            - 2
            - 3
          required: false
          schema:
            type: array
            description: 'optional An array of status IDs to filter projects by.'
            example:
              - 2
              - 3
            items:
              type: string
        -
          in: query
          name: user_ids
          description: 'optional An array of user IDs to filter projects by.'
          example:
            - 1
            - 2
            - 3
          required: false
          schema:
            type: array
            description: 'optional An array of user IDs to filter projects by.'
            example:
              - 1
              - 2
              - 3
            items:
              type: string
        -
          in: query
          name: client_ids
          description: 'optional An array of client IDs to filter projects by.'
          example:
            - 5
            - 6
          required: false
          schema:
            type: array
            description: 'optional An array of client IDs to filter projects by.'
            example:
              - 5
              - 6
            items:
              type: string
        -
          in: query
          name: priority_ids
          description: 'optional An array of priority IDs to filter projects by.'
          example:
            - 1
            - 2
          required: false
          schema:
            type: array
            description: 'optional An array of priority IDs to filter projects by.'
            example:
              - 1
              - 2
            items:
              type: string
        -
          in: query
          name: tag_ids
          description: 'optional An array of tag IDs to filter projects by.'
          example:
            - 1
            - 2
          required: false
          schema:
            type: array
            description: 'optional An array of tag IDs to filter projects by.'
            example:
              - 1
              - 2
            items:
              type: string
        -
          in: query
          name: project_start_date_from
          description: "optional The start date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The start date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: project_start_date_to
          description: "optional The start date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The start date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: project_end_date_from
          description: "optional The end date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The end date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: project_end_date_to
          description: "optional The end date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The end date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: is_favorites
          description: 'optional Filter projects marked as favorites.'
          example: true
          required: false
          schema:
            type: boolean
            description: 'optional Filter projects marked as favorites.'
            example: true
        -
          in: query
          name: limit
          description: 'optional The number of projects per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of projects per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Projects retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 351
                          title: rwer
                          status: 'Rel test'
                          priority: Default
                          users:
                            -
                              id: 7
                              first_name: Madhavan
                              last_name: Vaidya
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            -
                              id: 183
                              first_name: Girish
                              last_name: Thacker
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          clients: []
                          tags: []
                          start_date: 14-06-2024
                          end_date: 14-06-2024
                          budget: ''
                          created_at: '14-06-2024 17:50:09'
                          updated_at: '17-06-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Projects retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 351
                            title: rwer
                            status: 'Rel test'
                            priority: Default
                            users:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                              -
                                id: 183
                                first_name: Girish
                                last_name: Thacker
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            clients: []
                            tags: []
                            start_date: 14-06-2024
                            end_date: 14-06-2024
                            budget: ''
                            created_at: '14-06-2024 17:50:09'
                            updated_at: '17-06-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 351
                            title:
                              type: string
                              example: rwer
                            status:
                              type: string
                              example: 'Rel test'
                            priority:
                              type: string
                              example: Default
                            users:
                              type: array
                              example:
                                -
                                  id: 7
                                  first_name: Madhavan
                                  last_name: Vaidya
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                                -
                                  id: 183
                                  first_name: Girish
                                  last_name: Thacker
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 7
                                  first_name:
                                    type: string
                                    example: Madhavan
                                  last_name:
                                    type: string
                                    example: Vaidya
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            clients:
                              type: array
                              example: []
                            tags:
                              type: array
                              example: []
                            start_date:
                              type: string
                              example: 14-06-2024
                            end_date:
                              type: string
                              example: 14-06-2024
                            budget:
                              type: string
                              example: ''
                            created_at:
                              type: string
                              example: '14-06-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '17-06-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Project not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Project not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Projects not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Projects not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Project Management'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                user_ids:
                  type: array
                  description: ''
                  example:
                    - 18
                  items:
                    type: integer
                client_ids:
                  type: array
                  description: ''
                  example:
                    - 6
                  items:
                    type: integer
                priority_ids:
                  type: array
                  description: ''
                  example:
                    - 14
                  items:
                    type: integer
                tag_ids:
                  type: array
                  description: ''
                  example:
                    - 6
                  items:
                    type: integer
                status_ids:
                  type: array
                  description: ''
                  example:
                    - 1
                  items:
                    type: integer
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the project to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/projects/store:
    post:
      summary: 'Create a new project.'
      operationId: createANewProject
      description: 'This endpoint creates a new project with the provided details. The user must be authenticated to perform this action. The request validates various fields, including title, status, priority, dates, and task accessibility.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Project created successfully.'
                      id: 438
                      data:
                        id: 438
                        title: 'Res Test'
                        status: Default
                        priority: dsfdsf
                        users:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          -
                            id: 185
                            first_name: Admin
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        clients:
                          -
                            id: 103
                            first_name: Test
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        tags:
                          -
                            id: 45
                            title: 'Tag from update project'
                        start_date: null
                        end_date: null
                        budget: '1000'
                        task_accessibility: assigned_users
                        description: null
                        note: null
                        favorite: 0
                        created_at: '07-08-2024 14:38:51'
                        updated_at: '07-08-2024 14:38:51'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Project created successfully.'
                      id:
                        type: integer
                        example: 438
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 438
                          title:
                            type: string
                            example: 'Res Test'
                          status:
                            type: string
                            example: Default
                          priority:
                            type: string
                            example: dsfdsf
                          users:
                            type: array
                            example:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                              -
                                id: 185
                                first_name: Admin
                                last_name: Test
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 7
                                first_name:
                                  type: string
                                  example: Madhavan
                                last_name:
                                  type: string
                                  example: Vaidya
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients:
                            type: array
                            example:
                              -
                                id: 103
                                first_name: Test
                                last_name: Test
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 103
                                first_name:
                                  type: string
                                  example: Test
                                last_name:
                                  type: string
                                  example: Test
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          tags:
                            type: array
                            example:
                              -
                                id: 45
                                title: 'Tag from update project'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 45
                                title:
                                  type: string
                                  example: 'Tag from update project'
                          start_date:
                            type: string
                            example: null
                          end_date:
                            type: string
                            example: null
                          budget:
                            type: string
                            example: '1000'
                          task_accessibility:
                            type: string
                            example: assigned_users
                          description:
                            type: string
                            example: null
                          note:
                            type: string
                            example: null
                          favorite:
                            type: integer
                            example: 0
                          created_at:
                            type: string
                            example: '07-08-2024 14:38:51'
                          updated_at:
                            type: string
                            example: '07-08-2024 14:38:51'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'You are not authorized to set this status.'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'You are not authorized to set this status.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    title:
                      - 'The title field is required.'
                    status_id:
                      - 'The status_id field is required.'
                    start_date:
                      - 'The start date must be before or equal to the end date.'
                    budget:
                      - 'The budget format is invalid.'
                    task_accessibility:
                      - 'The task accessibility must be either project_users or assigned_users.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      status_id:
                        type: array
                        example:
                          - 'The status_id field is required.'
                        items:
                          type: string
                      start_date:
                        type: array
                        example:
                          - 'The start date must be before or equal to the end date.'
                        items:
                          type: string
                      budget:
                        type: array
                        example:
                          - 'The budget format is invalid.'
                        items:
                          type: string
                      task_accessibility:
                        type: array
                        example:
                          - 'The task accessibility must be either project_users or assigned_users.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while creating the project.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while creating the project.'
      tags:
        - 'Project Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The title of the project.'
                  example: 'New Website Launch'
                status_id:
                  type: integer
                  description: "The ID of the project's status."
                  example: 1
                priority_id:
                  type: integer
                  description: "optional The ID of the project's priority."
                  example: 2
                start_date:
                  type: string|null
                  description: 'optional The start date of the project in the format specified in the general settings.'
                  example: '2024-08-01'
                end_date:
                  type: string|null
                  description: 'optional The end date of the project in the format specified in the general settings.'
                  example: '2024-08-31'
                budget:
                  type: string|null
                  description: 'optional Only digits, commas as thousand separators, and a single decimal point are allowed. digits can optionally be grouped in thousands with commas, where each group of digits must be exactly three digits long (e.g., 1,000 is correct; 10,0000 is not).'
                  example: '5000.00'
                task_accessibility:
                  type: string
                  description: "Indicates who can access the task. Must be either 'project_users' or 'assigned_users'."
                  example: project_users
                description:
                  type: string|null
                  description: 'optional A description of the project.'
                  example: 'A project to launch a new company website.'
                note:
                  type: string|null
                  description: 'optional Additional notes for the project.'
                  example: 'Ensure all team members are informed.'
                user_id:
                  type: array|null
                  description: 'optional Array of user IDs to be associated with the project.'
                  example: '[1, 2, 3]'
                client_id:
                  type: array|null
                  description: 'optional Array of client IDs to be associated with the project.'
                  example: '[5, 6]'
                tag_ids:
                  type: array|null
                  description: 'optional Array of tag IDs to be associated with the project.'
                  example: '[10, 11]'
                clientCanDiscuss:
                  type: string
                  description: "optional Indicates if the client can participate in project discussions. Can only specify if `is_admin_or_has_all_data_access` is true for the logged-in user; otherwise, it will be considered 0 by default. The value should be 'on' to allow client participation."
                  example: 'on'
              required:
                - title
                - status_id
                - task_accessibility
  /api/projects/update:
    post:
      summary: 'Update an existing project.'
      operationId: updateAnExistingProject
      description: 'This endpoint updates an existing project with the provided details. The user must be authenticated to perform this action. The request validates various fields, including title, status, priority, dates, and task accessibility.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Project updated successfully.'
                      id: 438
                      data:
                        id: 438
                        title: 'Res Test'
                        status: Default
                        priority: dsfdsf
                        users:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          -
                            id: 185
                            first_name: Admin
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        clients:
                          -
                            id: 103
                            first_name: Test
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        tags:
                          -
                            id: 45
                            title: 'Tag from update project'
                        start_date: null
                        end_date: null
                        budget: '1000'
                        task_accessibility: assigned_users
                        description: null
                        note: null
                        favorite: 0
                        created_at: '07-08-2024 14:38:51'
                        updated_at: '07-08-2024 14:38:51'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Project updated successfully.'
                      id:
                        type: integer
                        example: 438
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 438
                          title:
                            type: string
                            example: 'Res Test'
                          status:
                            type: string
                            example: Default
                          priority:
                            type: string
                            example: dsfdsf
                          users:
                            type: array
                            example:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                              -
                                id: 185
                                first_name: Admin
                                last_name: Test
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 7
                                first_name:
                                  type: string
                                  example: Madhavan
                                last_name:
                                  type: string
                                  example: Vaidya
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients:
                            type: array
                            example:
                              -
                                id: 103
                                first_name: Test
                                last_name: Test
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 103
                                first_name:
                                  type: string
                                  example: Test
                                last_name:
                                  type: string
                                  example: Test
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          tags:
                            type: array
                            example:
                              -
                                id: 45
                                title: 'Tag from update project'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 45
                                title:
                                  type: string
                                  example: 'Tag from update project'
                          start_date:
                            type: string
                            example: null
                          end_date:
                            type: string
                            example: null
                          budget:
                            type: string
                            example: '1000'
                          task_accessibility:
                            type: string
                            example: assigned_users
                          description:
                            type: string
                            example: null
                          note:
                            type: string
                            example: null
                          favorite:
                            type: integer
                            example: 0
                          created_at:
                            type: string
                            example: '07-08-2024 14:38:51'
                          updated_at:
                            type: string
                            example: '07-08-2024 14:38:51'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'You are not authorized to set this status.'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'You are not authorized to set this status.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The project ID is required.'
                      - 'The project ID does not exist in our records.'
                    status_id:
                      - 'The status field is required.'
                    budget:
                      - 'The budget format is invalid.'
                    task_accessibility:
                      - 'The task accessibility must be either project_users or assigned_users.'
                    start_date:
                      - 'The start date must be before or equal to the end date.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The project ID is required.'
                          - 'The project ID does not exist in our records.'
                        items:
                          type: string
                      status_id:
                        type: array
                        example:
                          - 'The status field is required.'
                        items:
                          type: string
                      budget:
                        type: array
                        example:
                          - 'The budget format is invalid.'
                        items:
                          type: string
                      task_accessibility:
                        type: array
                        example:
                          - 'The task accessibility must be either project_users or assigned_users.'
                        items:
                          type: string
                      start_date:
                        type: array
                        example:
                          - 'The start date must be before or equal to the end date.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the project.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the project.'
      tags:
        - 'Project Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the project to update.'
                  example: 1
                title:
                  type: string
                  description: 'The title of the project.'
                  example: 'Updated Project Title'
                status_id:
                  type: integer
                  description: "The ID of the project's status."
                  example: 2
                priority_id:
                  type: integer
                  description: "optional The ID of the project's priority."
                  example: 3
                budget:
                  type: string|null
                  description: 'optional Only digits, commas as thousand separators, and a single decimal point are allowed. digits can optionally be grouped in thousands with commas, where each group of digits must be exactly three digits long (e.g., 1,000 is correct; 10,0000 is not).'
                  example: '5000.00'
                task_accessibility:
                  type: string
                  description: "Indicates who can access the task. Must be either 'project_users' or 'assigned_users'."
                  example: assigned_users
                start_date:
                  type: string|null
                  description: 'optional The start date of the project in the format specified in the general settings.'
                  example: '2024-08-01'
                end_date:
                  type: string|null
                  description: 'optional The end date of the project in the format specified in the general settings.'
                  example: '2024-08-31'
                description:
                  type: string|null
                  description: 'optional A description of the project.'
                  example: 'Updated project description.'
                note:
                  type: string|null
                  description: 'optional Additional notes for the project.'
                  example: 'Updated note for the project.'
                user_id:
                  type: array|null
                  description: 'optional Array of user IDs to be associated with the project.'
                  example: '[2, 3]'
                client_id:
                  type: array|null
                  description: 'optional Array of client IDs to be associated with the project.'
                  example: '[5, 6]'
                tag_ids:
                  type: array|null
                  description: 'optional Array of tag IDs to be associated with the project.'
                  example: '[10, 11]'
                clientCanDiscuss:
                  type: string
                  description: "optional Indicates if the client can participate in project discussions. Can only specify if `is_admin_or_has_all_data_access` is true for the logged-in user; otherwise, it will be considered current value by default. The value should be 'on' to allow client participation."
                  example: 'on'
              required:
                - id
                - title
                - status_id
                - task_accessibility
  '/api/projects/{id}/favorite':
    patch:
      summary: 'Update the favorite status of a project.'
      operationId: updateTheFavoriteStatusOfAProject
      description: 'This endpoint updates whether a project is marked as a favorite or not. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Project favorite status updated successfully'
                      data:
                        id: 438
                        title: 'Res Test'
                        status: Default
                        priority: dsfdsf
                        users:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        clients:
                          -
                            id: 103
                            first_name: Test
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        tags:
                          -
                            id: 45
                            title: 'Tag from update project'
                        start_date: null
                        end_date: null
                        budget: '1000.00'
                        task_accessibility: assigned_users
                        description: null
                        note: null
                        favorite: 1
                        created_at: '07-08-2024 14:38:51'
                        updated_at: '12-08-2024 13:36:10'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Project favorite status updated successfully'
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 438
                          title:
                            type: string
                            example: 'Res Test'
                          status:
                            type: string
                            example: Default
                          priority:
                            type: string
                            example: dsfdsf
                          users:
                            type: array
                            example:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 7
                                first_name:
                                  type: string
                                  example: Madhavan
                                last_name:
                                  type: string
                                  example: Vaidya
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients:
                            type: array
                            example:
                              -
                                id: 103
                                first_name: Test
                                last_name: Test
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 103
                                first_name:
                                  type: string
                                  example: Test
                                last_name:
                                  type: string
                                  example: Test
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          tags:
                            type: array
                            example:
                              -
                                id: 45
                                title: 'Tag from update project'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 45
                                title:
                                  type: string
                                  example: 'Tag from update project'
                          start_date:
                            type: string
                            example: null
                          end_date:
                            type: string
                            example: null
                          budget:
                            type: string
                            example: '1000.00'
                          task_accessibility:
                            type: string
                            example: assigned_users
                          description:
                            type: string
                            example: null
                          note:
                            type: string
                            example: null
                          favorite:
                            type: integer
                            example: 1
                          created_at:
                            type: string
                            example: '07-08-2024 14:38:51'
                          updated_at:
                            type: string
                            example: '12-08-2024 13:36:10'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Project not found'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Project not found'
                      data:
                        type: array
                        example: []
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    is_favorite:
                      - 'The is favorite field must be either 0 or 1.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      is_favorite:
                        type: array
                        example:
                          - 'The is favorite field must be either 0 or 1.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the favorite status.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the favorite status.'
      tags:
        - 'Project Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_favorite:
                  type: integer
                  description: 'Indicates whether the project is a favorite. Use 1 for true and 0 for false.'
                  example: 5
              required:
                - is_favorite
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project to update.'
        example: 8
        required: true
        schema:
          type: integer
  '/api/projects/{id}/pinned':
    patch:
      summary: 'Update the pinned status of a project.'
      operationId: updateThePinnedStatusOfAProject
      description: 'This endpoint updates whether a project is marked as pinned or not. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n\"error\": false,\n\"message\": \"Project pinned status updated successfully\",\n\"data\": {\n  \"id\": 438,\n  \"title\": \"Res Test\"\n  // Other project details will be included in the actual response\n}\n}"
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    is_pinned:
                      - 'The is pinned field must be either 0 or 1.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      is_pinned:
                        type: array
                        example:
                          - 'The is pinned field must be either 0 or 1.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the pinned status.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the pinned status.'
      tags:
        - 'Project Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_pinned:
                  type: integer
                  description: 'Indicates whether the project is pinned. Use 1 for true and 0 for false.'
                  example: 11
              required:
                - is_pinned
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project to update.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/projects/{id}/status':
    patch:
      summary: 'Update the status of a project.'
      operationId: updateTheStatusOfAProject
      description: 'This endpoint updates the status of a specified project. The user must be authenticated and have permission to set the new status. A notification will be sent to all users and clients associated with the project.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Status updated successfully.'
                      id: '438'
                      type: project
                      activity_message: 'Madhavan Vaidya updated project status from Default to vbnvbnvbn'
                      data:
                        id: 438
                        title: 'Res Test'
                        status: vbnvbnvbn
                        priority: dsfdsf
                        users:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        clients:
                          -
                            id: 103
                            first_name: Test
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        tags:
                          -
                            id: 45
                            title: 'Tag from update project'
                        start_date: null
                        end_date: null
                        budget: '1000.00'
                        task_accessibility: assigned_users
                        description: null
                        note: null
                        favorite: 1
                        created_at: '07-08-2024 14:38:51'
                        updated_at: '12-08-2024 13:49:33'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Status updated successfully.'
                      id:
                        type: string
                        example: '438'
                      type:
                        type: string
                        example: project
                      activity_message:
                        type: string
                        example: 'Madhavan Vaidya updated project status from Default to vbnvbnvbn'
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 438
                          title:
                            type: string
                            example: 'Res Test'
                          status:
                            type: string
                            example: vbnvbnvbn
                          priority:
                            type: string
                            example: dsfdsf
                          users:
                            type: array
                            example:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 7
                                first_name:
                                  type: string
                                  example: Madhavan
                                last_name:
                                  type: string
                                  example: Vaidya
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients:
                            type: array
                            example:
                              -
                                id: 103
                                first_name: Test
                                last_name: Test
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 103
                                first_name:
                                  type: string
                                  example: Test
                                last_name:
                                  type: string
                                  example: Test
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          tags:
                            type: array
                            example:
                              -
                                id: 45
                                title: 'Tag from update project'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 45
                                title:
                                  type: string
                                  example: 'Tag from update project'
                          start_date:
                            type: string
                            example: null
                          end_date:
                            type: string
                            example: null
                          budget:
                            type: string
                            example: '1000.00'
                          task_accessibility:
                            type: string
                            example: assigned_users
                          description:
                            type: string
                            example: null
                          note:
                            type: string
                            example: null
                          favorite:
                            type: integer
                            example: 1
                          created_at:
                            type: string
                            example: '07-08-2024 14:38:51'
                          updated_at:
                            type: string
                            example: '12-08-2024 13:49:33'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'You are not authorized to set this status.'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'You are not authorized to set this status.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The selected id is invalid.'
                    statusId:
                      - 'The selected status id is invalid.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The selected id is invalid.'
                        items:
                          type: string
                      statusId:
                        type: array
                        example:
                          - 'The selected status id is invalid.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Status couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Status couldn't be updated."
      tags:
        - 'Project Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                statusId:
                  type: integer
                  description: 'The ID of the new status to set for the project.'
                  example: 6
                note:
                  type: string
                  description: 'optional An optional note to attach to the project update.'
                  example: veniam
              required:
                - statusId
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project whose status is to be updated.'
        example: 15
        required: true
        schema:
          type: integer
  '/api/projects/{id}/priority':
    patch:
      summary: 'Update the priority of a project.'
      operationId: updateThePriorityOfAProject
      description: 'This endpoint updates the priority of a specified project. The user must be authenticated and have permission to set the new priority.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Priority updated successfully.'
                  id: '438'
                  type: project
                  activity_message: 'Madhavan Vaidya updated project priority from Low to Medium'
                  data:
                    id: 438
                    title: 'Res Test'
                    status: 'Test From Pro'
                    priority: Medium
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    clients:
                      -
                        id: 103
                        first_name: Test
                        last_name: Test
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    tags:
                      -
                        id: 45
                        title: 'Tag from update project'
                    start_date: null
                    end_date: null
                    budget: '1000.00'
                    task_accessibility: assigned_users
                    description: null
                    note: null
                    favorite: 1
                    created_at: '07-08-2024 14:38:51'
                    updated_at: '12-08-2024 13:58:55'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Priority updated successfully.'
                  id:
                    type: string
                    example: '438'
                  type:
                    type: string
                    example: project
                  activity_message:
                    type: string
                    example: 'Madhavan Vaidya updated project priority from Low to Medium'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 438
                      title:
                        type: string
                        example: 'Res Test'
                      status:
                        type: string
                        example: 'Test From Pro'
                      priority:
                        type: string
                        example: Medium
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      clients:
                        type: array
                        example:
                          -
                            id: 103
                            first_name: Test
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 103
                            first_name:
                              type: string
                              example: Test
                            last_name:
                              type: string
                              example: Test
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      tags:
                        type: array
                        example:
                          -
                            id: 45
                            title: 'Tag from update project'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 45
                            title:
                              type: string
                              example: 'Tag from update project'
                      start_date:
                        type: string
                        example: null
                      end_date:
                        type: string
                        example: null
                      budget:
                        type: string
                        example: '1000.00'
                      task_accessibility:
                        type: string
                        example: assigned_users
                      description:
                        type: string
                        example: null
                      note:
                        type: string
                        example: null
                      favorite:
                        type: integer
                        example: 1
                      created_at:
                        type: string
                        example: '07-08-2024 14:38:51'
                      updated_at:
                        type: string
                        example: '12-08-2024 13:58:55'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The selected id is invalid.'
                    priorityId:
                      - 'The selected priority id is invalid.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The selected id is invalid.'
                        items:
                          type: string
                      priorityId:
                        type: array
                        example:
                          - 'The selected priority id is invalid.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Priority couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Priority couldn't be updated."
      tags:
        - 'Project Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                priorityId:
                  type: integer
                  description: 'The ID of the new priority to set for the project.'
                  example: 6
              required:
                - priorityId
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project whose priority is to be updated.'
        example: 19
        required: true
        schema:
          type: integer
  '/api/projects/destroy/{id}':
    delete:
      summary: 'Remove the specified project.'
      operationId: removeTheSpecifiedProject
      description: 'This endpoint deletes a project based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Project deleted successfully.'
                      id: 1
                      title: 'Project Title'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Project deleted successfully.'
                      id:
                        type: integer
                        example: 1
                      title:
                        type: string
                        example: 'Project Title'
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Project not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Project not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the project.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the project.'
      tags:
        - 'Project Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/projects/{id}/status-timelines':
    get:
      summary: 'Get project status timeline.'
      operationId: getProjectStatusTimeline
      description: 'This endpoint retrieves the status change history of a project, sorted in descending order.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Status timeline retrieved successfully.'
                  status_timeline:
                    -
                      id: 1
                      status: 'In Progress'
                      previous_status: Pending
                      new_color: '#ffcc00'
                      old_color: '#cccccc'
                      changed_at: '2025-03-03 14:00:00'
                    -
                      id: 2
                      status: Completed
                      previous_status: 'In Progress'
                      new_color: '#00cc66'
                      old_color: '#ffcc00'
                      changed_at: '2025-03-05 16:00:00'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Status timeline retrieved successfully.'
                  status_timeline:
                    type: array
                    example:
                      -
                        id: 1
                        status: 'In Progress'
                        previous_status: Pending
                        new_color: '#ffcc00'
                        old_color: '#cccccc'
                        changed_at: '2025-03-03 14:00:00'
                      -
                        id: 2
                        status: Completed
                        previous_status: 'In Progress'
                        new_color: '#00cc66'
                        old_color: '#ffcc00'
                        changed_at: '2025-03-05 16:00:00'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        status:
                          type: string
                          example: 'In Progress'
                        previous_status:
                          type: string
                          example: Pending
                        new_color:
                          type: string
                          example: '#ffcc00'
                        old_color:
                          type: string
                          example: '#cccccc'
                        changed_at:
                          type: string
                          example: '2025-03-03 14:00:00'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Project not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Project not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Could not retrieve status timeline.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Could not retrieve status timeline.'
      tags:
        - 'Project Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project whose status timeline is to be retrieved.'
        example: 6
        required: true
        schema:
          type: integer
  /api/milestones/store:
    post:
      summary: 'Store a new milestone.'
      operationId: storeANewMilestone
      description: 'This endpoint creates a new milestone for a specified project. The user must be authenticated and have permission to create milestones.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Milestone created successfully.'
                  id: 12
                  type: milestone
                  parent_type: project
                  parent_id: 438
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Milestone created successfully.'
                  id:
                    type: integer
                    example: 12
                  type:
                    type: string
                    example: milestone
                  parent_type:
                    type: string
                    example: project
                  parent_id:
                    type: integer
                    example: 438
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    project_id:
                      - 'The selected project_id is invalid.'
                    title:
                      - 'The title field is required.'
                    cost:
                      - 'The cost format is invalid.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      project_id:
                        type: array
                        example:
                          - 'The selected project_id is invalid.'
                        items:
                          type: string
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      cost:
                        type: array
                        example:
                          - 'The cost format is invalid.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Milestone couldn't be created."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Milestone couldn't be created."
      tags:
        - 'Milestone Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: integer
                  description: 'The ID of the project to which the milestone belongs.'
                  example: 13
                title:
                  type: string
                  description: 'The title of the milestone.'
                  example: pariatur
                status:
                  type: string
                  description: 'The status of the milestone.'
                  example: aut
                start_date:
                  type: date
                  description: 'optional The start date of the milestone (YYYY-MM-DD).'
                  example: delectus
                end_date:
                  type: date
                  description: 'optional The end date of the milestone (YYYY-MM-DD).'
                  example: aut
                cost:
                  type: numeric
                  description: 'The cost of the milestone.'
                  example: eveniet
                description:
                  type: string
                  description: 'optional A description of the milestone.'
                  example: 'Ut quia velit incidunt iste.'
              required:
                - project_id
                - title
                - status
                - cost
  '/api/milestones/{id}':
    get:
      summary: 'Get a list of milestones for a project.'
      operationId: getAListOfMilestonesForAProject
      description: "This endpoint retrieves all milestones associated with a given project.\nIt supports searching, filtering, and sorting functionalities."
      parameters:
        -
          in: query
          name: search
          description: 'optional Search for milestones by title, ID, cost, or description.'
          example: quia
          required: false
          schema:
            type: string
            description: 'optional Search for milestones by title, ID, cost, or description.'
            example: quia
        -
          in: query
          name: sort
          description: 'optional Field to sort by (default: "id").'
          example: non
          required: false
          schema:
            type: string
            description: 'optional Field to sort by (default: "id").'
            example: non
        -
          in: query
          name: order
          description: 'optional Sorting order (ASC/DESC, default: "DESC").'
          example: ea
          required: false
          schema:
            type: string
            description: 'optional Sorting order (ASC/DESC, default: "DESC").'
            example: ea
        -
          in: query
          name: statuses
          description: 'optional Filter by milestone statuses.'
          example:
            - quas
          required: false
          schema:
            type: array
            description: 'optional Filter by milestone statuses.'
            example:
              - quas
            items:
              type: string
        -
          in: query
          name: date_between_from
          description: 'date optional Filter milestones starting from this date.'
          example: distinctio
          required: false
          schema:
            type: string
            description: 'date optional Filter milestones starting from this date.'
            example: distinctio
        -
          in: query
          name: date_between_to
          description: 'date optional Filter milestones ending at this date.'
          example: odio
          required: false
          schema:
            type: string
            description: 'date optional Filter milestones ending at this date.'
            example: odio
        -
          in: query
          name: start_date_from
          description: 'date optional Filter milestones with a start date after this date.'
          example: nihil
          required: false
          schema:
            type: string
            description: 'date optional Filter milestones with a start date after this date.'
            example: nihil
        -
          in: query
          name: start_date_to
          description: 'date optional Filter milestones with a start date before this date.'
          example: nobis
          required: false
          schema:
            type: string
            description: 'date optional Filter milestones with a start date before this date.'
            example: nobis
        -
          in: query
          name: end_date_from
          description: 'date optional Filter milestones with an end date after this date.'
          example: fuga
          required: false
          schema:
            type: string
            description: 'date optional Filter milestones with an end date after this date.'
            example: fuga
        -
          in: query
          name: end_date_to
          description: 'date optional Filter milestones with an end date before this date.'
          example: ducimus
          required: false
          schema:
            type: string
            description: 'date optional Filter milestones with an end date before this date.'
            example: ducimus
        -
          in: query
          name: limit
          description: 'optional Number of records per page.'
          example: 11
          required: false
          schema:
            type: integer
            description: 'optional Number of records per page.'
            example: 11
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  rows:
                    -
                      id: 12
                      title: 'Design Phase'
                      status: '<span class="badge bg-success">Complete</span>'
                      progress: '<div class="progress"><div class="progress-bar" role="progressbar" style="width: 75%"></div></div><h6 class="mt-2">75%</h6>'
                      cost: '₹1,500.00'
                      start_date: '2025-03-10'
                      end_date: '2025-03-20'
                      created_by: '<a href="/users/7">John Doe</a>'
                      description: 'Initial design phase for the project.'
                      created_at: '2025-03-01 14:00:00'
                      updated_at: '2025-03-05 16:00:00'
                      actions: '<a href="#" class="edit-milestone" data-id="12"><i class="bx bx-edit"></i></a>'
                  total: 1
                properties:
                  rows:
                    type: array
                    example:
                      -
                        id: 12
                        title: 'Design Phase'
                        status: '<span class="badge bg-success">Complete</span>'
                        progress: '<div class="progress"><div class="progress-bar" role="progressbar" style="width: 75%"></div></div><h6 class="mt-2">75%</h6>'
                        cost: '₹1,500.00'
                        start_date: '2025-03-10'
                        end_date: '2025-03-20'
                        created_by: '<a href="/users/7">John Doe</a>'
                        description: 'Initial design phase for the project.'
                        created_at: '2025-03-01 14:00:00'
                        updated_at: '2025-03-05 16:00:00'
                        actions: '<a href="#" class="edit-milestone" data-id="12"><i class="bx bx-edit"></i></a>'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 12
                        title:
                          type: string
                          example: 'Design Phase'
                        status:
                          type: string
                          example: '<span class="badge bg-success">Complete</span>'
                        progress:
                          type: string
                          example: '<div class="progress"><div class="progress-bar" role="progressbar" style="width: 75%"></div></div><h6 class="mt-2">75%</h6>'
                        cost:
                          type: string
                          example: '₹1,500.00'
                        start_date:
                          type: string
                          example: '2025-03-10'
                        end_date:
                          type: string
                          example: '2025-03-20'
                        created_by:
                          type: string
                          example: '<a href="/users/7">John Doe</a>'
                        description:
                          type: string
                          example: 'Initial design phase for the project.'
                        created_at:
                          type: string
                          example: '2025-03-01 14:00:00'
                        updated_at:
                          type: string
                          example: '2025-03-05 16:00:00'
                        actions:
                          type: string
                          example: '<a href="#" class="edit-milestone" data-id="12"><i class="bx bx-edit"></i></a>'
                  total:
                    type: integer
                    example: 1
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Project not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Project not found.'
      tags:
        - 'Milestone Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project whose milestones are to be retrieved.'
        example: 3
        required: true
        schema:
          type: integer
  '/api/milestones/get/{id}':
    get:
      summary: 'Get details of a specific milestone.'
      operationId: getDetailsOfASpecificMilestone
      description: 'This endpoint retrieves details of a specific milestone by its ID.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  milestone:
                    id: 12
                    title: 'Design Phase'
                    status: 'In Progress'
                    cost: '₹1,500.00'
                    start_date: '2025-03-10'
                    end_date: '2025-03-20'
                    description: 'Initial design phase for the project.'
                    created_at: '2025-03-01 14:00:00'
                    updated_at: '2025-03-05 16:00:00'
                properties:
                  error:
                    type: boolean
                    example: false
                  milestone:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 12
                      title:
                        type: string
                        example: 'Design Phase'
                      status:
                        type: string
                        example: 'In Progress'
                      cost:
                        type: string
                        example: '₹1,500.00'
                      start_date:
                        type: string
                        example: '2025-03-10'
                      end_date:
                        type: string
                        example: '2025-03-20'
                      description:
                        type: string
                        example: 'Initial design phase for the project.'
                      created_at:
                        type: string
                        example: '2025-03-01 14:00:00'
                      updated_at:
                        type: string
                        example: '2025-03-05 16:00:00'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Milestone not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Milestone not found.'
      tags:
        - 'Milestone Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the milestone to retrieve.'
        example: 14
        required: true
        schema:
          type: integer
  /api/milestones/update:
    post:
      summary: 'Update an existing milestone.'
      operationId: updateAnExistingMilestone
      description: 'This endpoint updates a specified milestone. The user must be authenticated and have permission to modify the milestone.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Milestone updated successfully.'
                  id: 12
                  type: milestone
                  parent_type: project
                  parent_id: 438
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Milestone updated successfully.'
                  id:
                    type: integer
                    example: 12
                  type:
                    type: string
                    example: milestone
                  parent_type:
                    type: string
                    example: project
                  parent_id:
                    type: integer
                    example: 438
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Milestone not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Milestone not found.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    title:
                      - 'The title field is required.'
                    cost:
                      - 'The cost format is invalid.'
                    progress:
                      - 'The progress field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      cost:
                        type: array
                        example:
                          - 'The cost format is invalid.'
                        items:
                          type: string
                      progress:
                        type: array
                        example:
                          - 'The progress field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Milestone couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Milestone couldn't be updated."
      tags:
        - 'Milestone Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The updated title of the milestone.'
                  example: et
                status:
                  type: string
                  description: 'The updated status of the milestone.'
                  example: voluptatum
                start_date:
                  type: date
                  description: 'optional The updated start date of the milestone (YYYY-MM-DD).'
                  example: quibusdam
                end_date:
                  type: date
                  description: 'optional The updated end date of the milestone (YYYY-MM-DD).'
                  example: illum
                cost:
                  type: numeric
                  description: 'The updated cost of the milestone.'
                  example: in
                progress:
                  type: integer
                  description: 'The updated progress percentage of the milestone.'
                  example: 8
                description:
                  type: string
                  description: 'optional An updated description of the milestone.'
                  example: 'Qui veniam et et aliquam nulla.'
              required:
                - title
                - status
                - cost
                - progress
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the milestone to be updated.'
        example: 20
        required: true
        schema:
          type: integer
  '/api/milestones/destroy/{id}':
    delete:
      summary: 'Delete a milestone.'
      operationId: deleteAMilestone
      description: 'This endpoint deletes a specified milestone. The user must be authenticated and have permission to delete milestones.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Milestone deleted successfully.'
                  id: 12
                  title: 'Design Phase'
                  type: milestone
                  parent_type: project
                  parent_id: 438
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Milestone deleted successfully.'
                  id:
                    type: integer
                    example: 12
                  title:
                    type: string
                    example: 'Design Phase'
                  type:
                    type: string
                    example: milestone
                  parent_type:
                    type: string
                    example: project
                  parent_id:
                    type: integer
                    example: 438
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Milestone not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Milestone not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Milestone couldn't be deleted."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Milestone couldn't be deleted."
      tags:
        - 'Milestone Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the milestone to delete.'
        example: 7
        required: true
        schema:
          type: integer
  '/api/projects/{id}/comments':
    post:
      summary: 'Add a comment.'
      operationId: addAComment
      description: "This endpoint allows authenticated users to add comments to a specific model (e.g., tasks, projects).\nUsers can also attach files and mention other users."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"success\": true,\n  \"message\": \"Comment Added Successfully\",\n  \"comment\": {\n    \"id\": 45,\n    \"commentable_type\": \"App\\Models\\Project\",\n    \"commentable_id\": 438,\n    \"content\": \"This is a sample comment with a mention @JohnDoe\",\n    \"commenter_id\": 7,\n    \"commenter_type\": \"App\\\\Models\\\\User\",\n    \"parent_id\": null,\n    \"created_at\": \"2 minutes ago\",\n    \"attachments\": [\n      {\n        \"id\": 1,\n        \"file_name\": \"document.pdf\",\n        \"file_path\": \"comment_attachments/document.pdf\",\n        \"file_type\": \"application/pdf\"\n      }\n    ]\n  },\n  \"user\": {\n    \"id\": 7,\n    \"name\": \"John Doe\"\n  }\n}"
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  message: 'Validation errors occurred'
                  errors:
                    content:
                      - 'Please enter a comment.'
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      content:
                        type: array
                        example:
                          - 'Please enter a comment.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  message: 'Comment could not be added.'
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Comment could not be added.'
      tags:
        - 'Project Comments'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                model_type:
                  type: string
                  description: 'The type of model being commented on (e.g., "Task", "Project").'
                  example: qui
                model_id:
                  type: integer
                  description: 'The ID of the model being commented on.'
                  example: 5
                content:
                  type: string
                  description: 'The comment text.'
                  example: et
                parent_id:
                  type: integer
                  description: 'optional The ID of the parent comment (for replies).'
                  example: 14
                'attachments[]':
                  type: string
                  format: binary
                  description: 'optional An array of files to attach to the comment. Maximum file size is defined in the config.'
              required:
                - model_type
                - model_id
                - content
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project to add a comment to.'
        example: 8
        required: true
        schema:
          type: integer
  '/api/projects/comments/get/{id}':
    get:
      summary: 'Get details of a specific comment.'
      operationId: getDetailsOfASpecificComment
      description: 'This endpoint retrieves details of a specific comment by its ID, including any attachments.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  comment:
                    id: 45
                    commentable_type: App\Models\Project
                    commentable_id: 438
                    content: 'This is a sample comment with a mention @JohnDoe'
                    commenter_id: 7
                    commenter_type: App\Models\User
                    parent_id: null
                    created_at: '2025-03-03 14:00:00'
                    updated_at: '2025-03-03 16:00:00'
                    attachments:
                      -
                        id: 1
                        file_name: document.pdf
                        file_path: comment_attachments/document.pdf
                        file_type: application/pdf
                properties:
                  error:
                    type: boolean
                    example: false
                  comment:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 45
                      commentable_type:
                        type: string
                        example: App\Models\Project
                      commentable_id:
                        type: integer
                        example: 438
                      content:
                        type: string
                        example: 'This is a sample comment with a mention @JohnDoe'
                      commenter_id:
                        type: integer
                        example: 7
                      commenter_type:
                        type: string
                        example: App\Models\User
                      parent_id:
                        type: string
                        example: null
                      created_at:
                        type: string
                        example: '2025-03-03 14:00:00'
                      updated_at:
                        type: string
                        example: '2025-03-03 16:00:00'
                      attachments:
                        type: array
                        example:
                          -
                            id: 1
                            file_name: document.pdf
                            file_path: comment_attachments/document.pdf
                            file_type: application/pdf
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            file_name:
                              type: string
                              example: document.pdf
                            file_path:
                              type: string
                              example: comment_attachments/document.pdf
                            file_type:
                              type: string
                              example: application/pdf
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Comment not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Comment not found.'
      tags:
        - 'Project Comments'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the comment to retrieve.'
        example: 3
        required: true
        schema:
          type: integer
  /api/projects/comments/update:
    post:
      summary: 'Update a comment.'
      operationId: updateAComment
      description: 'This endpoint updates a specified comment. The user must be authenticated and have permission to modify the comment.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Comment updated successfully.'
                  id: 45
                  type: project
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Comment updated successfully.'
                  id:
                    type: integer
                    example: 45
                  type:
                    type: string
                    example: project
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Comment not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Comment not found.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    content:
                      - 'Please enter a comment.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      content:
                        type: array
                        example:
                          - 'Please enter a comment.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Comment couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Comment couldn't be updated."
      tags:
        - 'Project Comments'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                comment_id:
                  type: integer
                  description: 'The ID of the comment to be updated.'
                  example: 6
                content:
                  type: string
                  description: 'The updated content of the comment.'
                  example: numquam
              required:
                - comment_id
                - content
  /api/projects/comments/destroy:
    delete:
      summary: 'Delete a comment.'
      operationId: deleteAComment
      description: "This endpoint deletes a specified comment and removes its attachments from storage.\nThe user must be authenticated and have permission to delete comments."
      parameters:
        -
          in: query
          name: comment_id
          description: 'The ID of the comment to delete.'
          example: 12
          required: true
          schema:
            type: integer
            description: 'The ID of the comment to delete.'
            example: 12
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Comment deleted successfully.'
                  id: 45
                  type: project
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Comment deleted successfully.'
                  id:
                    type: integer
                    example: 45
                  type:
                    type: string
                    example: project
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Comment not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Comment not found.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    comment_id:
                      - 'The comment_id field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      comment_id:
                        type: array
                        example:
                          - 'The comment_id field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Comment couldn't be deleted."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Comment couldn't be deleted."
      tags:
        - 'Project Comments'
  /api/projects/upload-media:
    post:
      summary: 'Upload media files to a project.'
      operationId: uploadMediaFilesToAProject
      description: 'This endpoint allows authenticated users to upload media files related to a project.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'File(s) uploaded successfully.'
                  id:
                    - 101
                    - 102
                  type: media
                  parent_type: project
                  parent_id: 438
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'File(s) uploaded successfully.'
                  id:
                    type: array
                    example:
                      - 101
                      - 102
                    items:
                      type: integer
                  type:
                    type: string
                    example: media
                  parent_type:
                    type: string
                    example: project
                  parent_id:
                    type: integer
                    example: 438
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Project not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Project not found.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The selected id is invalid.'
                    media_files:
                      - 'The media file size exceeds the limit.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The selected id is invalid.'
                        items:
                          type: string
                      media_files:
                        type: array
                        example:
                          - 'The media file size exceeds the limit.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred during file upload.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred during file upload.'
      tags:
        - 'Project Media'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the project to which media files are being uploaded.'
                  example: 19
                'media_files[]':
                  type: string
                  format: binary
                  description: 'An array of media files to be uploaded. Maximum file size is defined in the config.'
              required:
                - id
                - 'media_files[]'
  '/api/projects/get-media/{id}':
    get:
      summary: 'Get project media files.'
      operationId: getProjectMediaFiles
      description: 'This endpoint retrieves all media files associated with a specific project, including sorting and search capabilities.'
      parameters:
        -
          in: query
          name: search
          description: 'optional A search query to filter media files by name, ID, or upload date.'
          example: tenetur
          required: false
          schema:
            type: string
            description: 'optional A search query to filter media files by name, ID, or upload date.'
            example: tenetur
        -
          in: query
          name: sort
          description: 'optional The column to sort by (default: "id").'
          example: rerum
          required: false
          schema:
            type: string
            description: 'optional The column to sort by (default: "id").'
            example: rerum
        -
          in: query
          name: order
          description: 'optional The sorting order: "ASC" or "DESC" (default: "DESC").'
          example: magnam
          required: false
          schema:
            type: string
            description: 'optional The sorting order: "ASC" or "DESC" (default: "DESC").'
            example: magnam
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Media files retrieved successfully.'
                  rows:
                    -
                      id: 101
                      file: "<a href='https://example.com/storage/project-media/image.jpg' data-lightbox='project-media'><img src='https://example.com/storage/project-media/image.jpg' alt='image.jpg' width='50'></a>"
                      file_name: image.jpg
                      file_size: '2 MB'
                      created_at: '2025-03-03 14:00:00'
                      updated_at: '2025-03-03 16:00:00'
                      actions: "<a href='https://example.com/storage/project-media/image.jpg' title='Download' download><i class='bx bx-download bx-sm'></i></a>"
                  total: 1
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Media files retrieved successfully.'
                  rows:
                    type: array
                    example:
                      -
                        id: 101
                        file: "<a href='https://example.com/storage/project-media/image.jpg' data-lightbox='project-media'><img src='https://example.com/storage/project-media/image.jpg' alt='image.jpg' width='50'></a>"
                        file_name: image.jpg
                        file_size: '2 MB'
                        created_at: '2025-03-03 14:00:00'
                        updated_at: '2025-03-03 16:00:00'
                        actions: "<a href='https://example.com/storage/project-media/image.jpg' title='Download' download><i class='bx bx-download bx-sm'></i></a>"
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 101
                        file:
                          type: string
                          example: "<a href='https://example.com/storage/project-media/image.jpg' data-lightbox='project-media'><img src='https://example.com/storage/project-media/image.jpg' alt='image.jpg' width='50'></a>"
                        file_name:
                          type: string
                          example: image.jpg
                        file_size:
                          type: string
                          example: '2 MB'
                        created_at:
                          type: string
                          example: '2025-03-03 14:00:00'
                        updated_at:
                          type: string
                          example: '2025-03-03 16:00:00'
                        actions:
                          type: string
                          example: "<a href='https://example.com/storage/project-media/image.jpg' title='Download' download><i class='bx bx-download bx-sm'></i></a>"
                  total:
                    type: integer
                    example: 1
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Project not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Project not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Could not retrieve media files.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Could not retrieve media files.'
      tags:
        - 'Project Media'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the project whose media files are to be retrieved.'
        example: 20
        required: true
        schema:
          type: integer
  '/api/projects/delete-media/{id}':
    delete:
      summary: 'Delete a media file.'
      operationId: deleteAMediaFile
      description: 'This endpoint deletes a specified media file associated with a project. The user must be authenticated and have permission to delete media files.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'File deleted successfully.'
                  id: 101
                  title: image.jpg
                  parent_id: 438
                  type: media
                  parent_type: project
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'File deleted successfully.'
                  id:
                    type: integer
                    example: 101
                  title:
                    type: string
                    example: image.jpg
                  parent_id:
                    type: integer
                    example: 438
                  type:
                    type: string
                    example: media
                  parent_type:
                    type: string
                    example: project
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'File not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'File not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "File couldn't be deleted."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "File couldn't be deleted."
      tags:
        - 'Project Media'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the delete medium.'
        example: facere
        required: true
        schema:
          type: string
      -
        in: path
        name: mediaId
        description: 'The ID of the media file to delete.'
        example: 9
        required: true
        schema:
          type: integer
  /api/tasks/store:
    post:
      summary: 'Create a new task.'
      operationId: createANewTask
      description: 'This endpoint creates a new task with the provided details. The user must be authenticated to perform this action. The request validates various fields, including title, status, priority, start and due dates, project association, and optional notes.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Task created successfully.'
                  id: 280
                  parent_id: '420'
                  parent_type: project
                  data:
                    id: 280
                    workspace_id: 6
                    title: 'Res Test'
                    status: Default
                    status_id: '0'
                    priority: Default
                    priority_id: '0'
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    user_id:
                      - 1
                      - 2
                    clients:
                      -
                        id: 173
                        first_name: '666'
                        last_name: '666'
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    start_date: 07-08-2024
                    due_date: 07-08-2024
                    project:
                      id: 420
                      title: 'Updated Project Title'
                    description: 'Test Desc'
                    note: 'Test Note'
                    created_at: '07-08-2024 13:02:52'
                    updated_at: '07-08-2024 13:02:52'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Task created successfully.'
                  id:
                    type: integer
                    example: 280
                  parent_id:
                    type: string
                    example: '420'
                  parent_type:
                    type: string
                    example: project
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 280
                      workspace_id:
                        type: integer
                        example: 6
                      title:
                        type: string
                        example: 'Res Test'
                      status:
                        type: string
                        example: Default
                      status_id:
                        type: string
                        example: '0'
                      priority:
                        type: string
                        example: Default
                      priority_id:
                        type: string
                        example: '0'
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      user_id:
                        type: array
                        example:
                          - 1
                          - 2
                        items:
                          type: integer
                      clients:
                        type: array
                        example:
                          -
                            id: 173
                            first_name: '666'
                            last_name: '666'
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 173
                            first_name:
                              type: string
                              example: '666'
                            last_name:
                              type: string
                              example: '666'
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      start_date:
                        type: string
                        example: 07-08-2024
                      due_date:
                        type: string
                        example: 07-08-2024
                      project:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 420
                          title:
                            type: string
                            example: 'Updated Project Title'
                      description:
                        type: string
                        example: 'Test Desc'
                      note:
                        type: string
                        example: 'Test Note'
                      created_at:
                        type: string
                        example: '07-08-2024 13:02:52'
                      updated_at:
                        type: string
                        example: '07-08-2024 13:02:52'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"error\": true,\n \"message\": \"Validation errors occurred\",\n \"errors\": {\n   \"title\": [\"The title field is required.\"],\n   \"status_id\": [\"The selected status_id is invalid.\"],\n   ...\n }\n}"
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while creating the task.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while creating the task.'
      tags:
        - 'Task Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The title of the task.'
                  example: 'New Task'
                status_id:
                  type: integer
                  description: 'The status of the task. Must exist in the `statuses` table.'
                  example: 1
                priority_id:
                  type: integer
                  description: 'nullable The priority of the task. Must exist in the `priorities` table.'
                  example: 2
                start_date:
                  type: string|null
                  description: 'optional The start date of the task in the format specified in the general settings.'
                  example: '2024-07-20'
                due_date:
                  type: string|null
                  description: 'optional The due date of the task in the format specified in the general settings.'
                  example: '2024-08-20'
                description:
                  type: string
                  description: 'nullable A description of the task.'
                  example: 'This is a detailed description of the task.'
                project:
                  type: integer
                  description: 'The ID of the project associated with the task. Must exist in the `projects` table.'
                  example: 10
                note:
                  type: string
                  description: 'nullable Additional notes about the task.'
                  example: Urgent
                user_id:
                  type: array
                  description: 'nullable An array of user IDs to be assigned to the task.'
                  example:
                    - 1
                    - 2
                    - 3
                  items:
                    type: string
                clientCanDiscuss:
                  type: string
                  description: "optional Indicates if the client can participate in task discussions. Can only specify if `is_admin_or_has_all_data_access` is true for the logged-in user; otherwise, it will be considered 0 by default. The value should be 'on' to allow client participation."
                  example: 'on'
              required:
                - title
                - status_id
                - project
  '/api/tasks/{id}':
    get:
      summary: 'List or search tasks.'
      operationId: listOrSearchTasks
      description: 'This endpoint retrieves a list of tasks based on various filters. The user must be authenticated to perform this action. The request allows filtering by multiple statuses, users, clients, projects, date ranges, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter tasks by title or id.'
          example: Task
          required: false
          schema:
            type: string
            description: 'optional The search term to filter tasks by title or id.'
            example: Task
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, project, status, priority, start_date, due_date, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, project, status, priority, start_date, due_date, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: status_ids
          description: 'optional An array of status IDs to filter tasks by.'
          example:
            - 2
            - 3
          required: false
          schema:
            type: array
            description: 'optional An array of status IDs to filter tasks by.'
            example:
              - 2
              - 3
            items:
              type: string
        -
          in: query
          name: user_ids
          description: 'optional An array of user IDs to filter tasks by.'
          example:
            - 1
            - 2
            - 3
          required: false
          schema:
            type: array
            description: 'optional An array of user IDs to filter tasks by.'
            example:
              - 1
              - 2
              - 3
            items:
              type: string
        -
          in: query
          name: client_ids
          description: 'optional An array of client IDs to filter tasks by.'
          example:
            - 5
            - 6
          required: false
          schema:
            type: array
            description: 'optional An array of client IDs to filter tasks by.'
            example:
              - 5
              - 6
            items:
              type: string
        -
          in: query
          name: priority_ids
          description: 'optional An array of priority IDs to filter tasks by.'
          example:
            - 1
            - 2
          required: false
          schema:
            type: array
            description: 'optional An array of priority IDs to filter tasks by.'
            example:
              - 1
              - 2
            items:
              type: string
        -
          in: query
          name: project_ids
          description: 'optional An array of project IDs to filter tasks by.'
          example:
            - 1
            - 2
          required: false
          schema:
            type: array
            description: 'optional An array of project IDs to filter tasks by.'
            example:
              - 1
              - 2
            items:
              type: string
        -
          in: query
          name: task_start_date_from
          description: "optional The start date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The start date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: task_start_date_to
          description: "optional The start date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The start date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: task_end_date_from
          description: "optional The end date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The end date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: task_end_date_to
          description: "optional The end date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The end date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: is_favorites
          description: 'optional Filter projects marked as favorites.'
          example: true
          required: false
          schema:
            type: boolean
            description: 'optional Filter projects marked as favorites.'
            example: true
        -
          in: query
          name: limit
          description: 'optional The number of tasks per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of tasks per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Tasks retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 268
                          workspace_id: 6
                          title: sdff
                          status: Default
                          priority: Default
                          users:
                            -
                              id: 7
                              first_name: Madhavan
                              last_name: Vaidya
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients:
                            -
                              id: 102
                              first_name: Test
                              last_name: Client
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          start_date: 23-07-2024
                          due_date: 24-07-2024
                          project:
                            id: 379
                            title: 'From API'
                          description: '<p>Test Desc</p>'
                          note: 'Test note'
                          created_at: '23-07-2024 17:50:09'
                          updated_at: '23-07-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Tasks retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 268
                            workspace_id: 6
                            title: sdff
                            status: Default
                            priority: Default
                            users:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            clients:
                              -
                                id: 102
                                first_name: Test
                                last_name: Client
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            start_date: 23-07-2024
                            due_date: 24-07-2024
                            project:
                              id: 379
                              title: 'From API'
                            description: '<p>Test Desc</p>'
                            note: 'Test note'
                            created_at: '23-07-2024 17:50:09'
                            updated_at: '23-07-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 268
                            workspace_id:
                              type: integer
                              example: 6
                            title:
                              type: string
                              example: sdff
                            status:
                              type: string
                              example: Default
                            priority:
                              type: string
                              example: Default
                            users:
                              type: array
                              example:
                                -
                                  id: 7
                                  first_name: Madhavan
                                  last_name: Vaidya
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 7
                                  first_name:
                                    type: string
                                    example: Madhavan
                                  last_name:
                                    type: string
                                    example: Vaidya
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            clients:
                              type: array
                              example:
                                -
                                  id: 102
                                  first_name: Test
                                  last_name: Client
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 102
                                  first_name:
                                    type: string
                                    example: Test
                                  last_name:
                                    type: string
                                    example: Client
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            start_date:
                              type: string
                              example: 23-07-2024
                            due_date:
                              type: string
                              example: 24-07-2024
                            project:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 379
                                title:
                                  type: string
                                  example: 'From API'
                            description:
                              type: string
                              example: '<p>Test Desc</p>'
                            note:
                              type: string
                              example: 'Test note'
                            created_at:
                              type: string
                              example: '23-07-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '23-07-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Task not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Task not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Tasks not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Tasks not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Task Management'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                user_ids:
                  type: array
                  description: ''
                  example:
                    - 5
                  items:
                    type: integer
                client_ids:
                  type: array
                  description: ''
                  example:
                    - 4
                  items:
                    type: integer
                priority_ids:
                  type: array
                  description: ''
                  example:
                    - 19
                  items:
                    type: integer
                project_ids:
                  type: array
                  description: ''
                  example:
                    - 11
                  items:
                    type: integer
                status_ids:
                  type: array
                  description: ''
                  example:
                    - 13
                  items:
                    type: integer
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the task to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/tasks/update:
    post:
      summary: 'Update an existing task.'
      operationId: updateAnExistingTask
      description: 'This endpoint updates the details of an existing task. The user must be authenticated to perform this action. The request validates various fields including title, status, priority, start and due dates, and optional notes. It also handles user assignments and notifies relevant parties of any status changes.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Task updated successfully.'
                  id: 280
                  parent_id: '420'
                  parent_type: project
                  data:
                    id: 280
                    workspace_id: 6
                    title: 'Res Test'
                    status: Default
                    priority: Default
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    clients:
                      -
                        id: 173
                        first_name: '666'
                        last_name: '666'
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    start_date: 07-08-2024
                    due_date: 07-08-2024
                    project:
                      id: 420
                      title: 'Updated Project Title'
                    description: 'Test Desc'
                    note: 'Test Note'
                    created_at: '07-08-2024 13:02:52'
                    updated_at: '07-08-2024 13:02:52'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Task updated successfully.'
                  id:
                    type: integer
                    example: 280
                  parent_id:
                    type: string
                    example: '420'
                  parent_type:
                    type: string
                    example: project
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 280
                      workspace_id:
                        type: integer
                        example: 6
                      title:
                        type: string
                        example: 'Res Test'
                      status:
                        type: string
                        example: Default
                      priority:
                        type: string
                        example: Default
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      clients:
                        type: array
                        example:
                          -
                            id: 173
                            first_name: '666'
                            last_name: '666'
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 173
                            first_name:
                              type: string
                              example: '666'
                            last_name:
                              type: string
                              example: '666'
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      start_date:
                        type: string
                        example: 07-08-2024
                      due_date:
                        type: string
                        example: 07-08-2024
                      project:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 420
                          title:
                            type: string
                            example: 'Updated Project Title'
                      description:
                        type: string
                        example: 'Test Desc'
                      note:
                        type: string
                        example: 'Test Note'
                      created_at:
                        type: string
                        example: '07-08-2024 13:02:52'
                      updated_at:
                        type: string
                        example: '07-08-2024 13:02:52'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"error\": true,\n \"message\": \"Validation errors occurred\",\n \"errors\": {\n   \"id\": [\"The selected id is invalid.\"],\n   \"title\": [\"The title field is required.\"],\n   \"status_id\": [\"The selected status_id is invalid.\"],\n   ...\n }\n}"
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the task.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the task.'
      tags:
        - 'Task Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the task to be updated. Must exist in the `tasks` table.'
                  example: 267
                title:
                  type: string
                  description: 'The title of the task.'
                  example: 'Updated Task'
                status_id:
                  type: integer
                  description: 'The status of the task. Must exist in the `statuses` table.'
                  example: 2
                priority_id:
                  type: integer
                  description: 'nullable The priority of the task. Must exist in the `priorities` table.'
                  example: 1
                start_date:
                  type: string|null
                  description: 'optional The start date of the task in the format specified in the general settings.'
                  example: '2024-07-20'
                due_date:
                  type: string|null
                  description: 'optional The due date of the task in the format specified in the general settings.'
                  example: '2024-08-20'
                description:
                  type: string
                  description: 'nullable A description of the task.'
                  example: 'Updated task description.'
                note:
                  type: string
                  description: 'nullable Additional notes about the task.'
                  example: 'Needs immediate attention.'
                user_id:
                  type: array
                  description: 'nullable An array of user IDs to be assigned to the task.'
                  example:
                    - 2
                    - 3
                  items:
                    type: string
                clientCanDiscuss:
                  type: string
                  description: "optional Indicates if the client can participate in task discussions. Can only specify if `is_admin_or_has_all_data_access` is true for the logged-in user; otherwise, it will be considered current value by default. The value should be 'on' to allow client participation."
                  example: 'on'
              required:
                - id
                - title
                - status_id
  '/api/tasks/{id}/favorite':
    patch:
      summary: 'Update the favorite status of a task.'
      operationId: updateTheFavoriteStatusOfATask
      description: 'This endpoint updates whether a task is marked as a favorite or not. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n\"error\": false,\n\"message\": \"Task favorite status updated successfully\",\n\"data\": {\n  \"id\": 438,\n  \"title\": \"Task Example\"\n  // Other task details will be included in the actual response\n}\n}"
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    is_favorite:
                      - 'The is favorite field must be either 0 or 1.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      is_favorite:
                        type: array
                        example:
                          - 'The is favorite field must be either 0 or 1.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the favorite status.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the favorite status.'
      tags:
        - 'Task Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_favorite:
                  type: integer
                  description: 'Indicates whether the task is a favorite. Use 1 for true and 0 for false.'
                  example: 3
              required:
                - is_favorite
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the task to update.'
        example: 20
        required: true
        schema:
          type: integer
  '/api/tasks/{id}/pinned':
    patch:
      summary: 'Update the pinned status of a task.'
      operationId: updateThePinnedStatusOfATask
      description: 'This endpoint updates whether a task is marked as pinned or not. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n\"error\": false,\n\"message\": \"Task pinned status updated successfully\",\n\"data\": {\n  \"id\": 438,\n  \"title\": \"Task Example\"\n  // Other task details will be included in the actual response\n}\n}"
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    is_pinned:
                      - 'The is pinned field must be either 0 or 1.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      is_pinned:
                        type: array
                        example:
                          - 'The is pinned field must be either 0 or 1.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the pinned status.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the pinned status.'
      tags:
        - 'Task Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_pinned:
                  type: integer
                  description: 'Indicates whether the task is pinned. Use 1 for true and 0 for false.'
                  example: 14
              required:
                - is_pinned
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the task to update.'
        example: 3
        required: true
        schema:
          type: integer
  '/api/tasks/{id}/status':
    patch:
      summary: 'Update the status of a task.'
      operationId: updateTheStatusOfATask
      description: 'This endpoint updates the status of a specified task. The user must be authenticated and have permission to set the new status. A notification will be sent to all users and clients associated with the task.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Status updated successfully.'
                      id: '278'
                      type: task
                      activity_message: 'Madhavan Vaidya updated task status from Ongoing to Completed'
                      data:
                        id: 278
                        workspace_id: 6
                        title: 'New Task'
                        status: Completed
                        priority: dsfdsf
                        users:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        clients:
                          -
                            id: 173
                            first_name: '666'
                            last_name: '666'
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        start_date: 20-08-2024
                        due_date: null
                        project:
                          id: 419
                          title: 'Updated Project Title'
                        description: 'This is a detailed description of the task.'
                        note: null
                        created_at: '06-08-2024 11:42:13'
                        updated_at: '12-08-2024 15:18:09'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Status updated successfully.'
                      id:
                        type: string
                        example: '278'
                      type:
                        type: string
                        example: task
                      activity_message:
                        type: string
                        example: 'Madhavan Vaidya updated task status from Ongoing to Completed'
                      data:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 278
                          workspace_id:
                            type: integer
                            example: 6
                          title:
                            type: string
                            example: 'New Task'
                          status:
                            type: string
                            example: Completed
                          priority:
                            type: string
                            example: dsfdsf
                          users:
                            type: array
                            example:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 7
                                first_name:
                                  type: string
                                  example: Madhavan
                                last_name:
                                  type: string
                                  example: Vaidya
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients:
                            type: array
                            example:
                              -
                                id: 173
                                first_name: '666'
                                last_name: '666'
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            items:
                              type: object
                              properties:
                                id:
                                  type: integer
                                  example: 173
                                first_name:
                                  type: string
                                  example: '666'
                                last_name:
                                  type: string
                                  example: '666'
                                photo:
                                  type: string
                                  example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          start_date:
                            type: string
                            example: 20-08-2024
                          due_date:
                            type: string
                            example: null
                          project:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 419
                              title:
                                type: string
                                example: 'Updated Project Title'
                          description:
                            type: string
                            example: 'This is a detailed description of the task.'
                          note:
                            type: string
                            example: null
                          created_at:
                            type: string
                            example: '06-08-2024 11:42:13'
                          updated_at:
                            type: string
                            example: '12-08-2024 15:18:09'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'You are not authorized to set this status.'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'You are not authorized to set this status.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The selected id is invalid.'
                    statusId:
                      - 'The selected status id is invalid.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The selected id is invalid.'
                        items:
                          type: string
                      statusId:
                        type: array
                        example:
                          - 'The selected status id is invalid.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Status couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Status couldn't be updated."
      tags:
        - 'Task Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                statusId:
                  type: integer
                  description: 'The ID of the new status to set for the task. Must exist in the `statuses` table.'
                  example: 2
                note:
                  type: string
                  description: 'optional An optional note to attach to the task update.'
                  example: 'Updated due to client request.'
              required:
                - statusId
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the task whose status is to be updated.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/tasks/{id}/priority':
    patch:
      summary: 'Update the priority of a task.'
      operationId: updateThePriorityOfATask
      description: 'This endpoint updates the priority of a specified task. The user must be authenticated and have permission to set the new priority.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Priority updated successfully.'
                  id: '278'
                  type: task
                  activity_message: 'Madhavan Vaidya updated task priority from Medium to High'
                  data:
                    id: 278
                    workspace_id: 6
                    title: 'New Task'
                    status: Completed
                    priority: High
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    clients:
                      -
                        id: 173
                        first_name: '666'
                        last_name: '666'
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    start_date: 20-08-2024
                    due_date: null
                    project:
                      id: 419
                      title: 'Updated Project Title'
                    description: 'This is a detailed description of the task.'
                    note: null
                    created_at: '06-08-2024 11:42:13'
                    updated_at: '12-08-2024 15:40:41'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Priority updated successfully.'
                  id:
                    type: string
                    example: '278'
                  type:
                    type: string
                    example: task
                  activity_message:
                    type: string
                    example: 'Madhavan Vaidya updated task priority from Medium to High'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 278
                      workspace_id:
                        type: integer
                        example: 6
                      title:
                        type: string
                        example: 'New Task'
                      status:
                        type: string
                        example: Completed
                      priority:
                        type: string
                        example: High
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      clients:
                        type: array
                        example:
                          -
                            id: 173
                            first_name: '666'
                            last_name: '666'
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 173
                            first_name:
                              type: string
                              example: '666'
                            last_name:
                              type: string
                              example: '666'
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      start_date:
                        type: string
                        example: 20-08-2024
                      due_date:
                        type: string
                        example: null
                      project:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 419
                          title:
                            type: string
                            example: 'Updated Project Title'
                      description:
                        type: string
                        example: 'This is a detailed description of the task.'
                      note:
                        type: string
                        example: null
                      created_at:
                        type: string
                        example: '06-08-2024 11:42:13'
                      updated_at:
                        type: string
                        example: '12-08-2024 15:40:41'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The selected id is invalid.'
                    priorityId:
                      - 'The selected priorityId is invalid.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The selected id is invalid.'
                        items:
                          type: string
                      priorityId:
                        type: array
                        example:
                          - 'The selected priorityId is invalid.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Priority couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Priority couldn't be updated."
      tags:
        - 'Task Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                priorityId:
                  type: integer
                  description: 'The ID of the new priority to set for the task. Must exist in the `priorities` table.'
                  example: 3
              required:
                - priorityId
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the task whose priority is to be updated.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/tasks/destroy/{id}':
    delete:
      summary: 'Remove the specified task.'
      operationId: removeTheSpecifiedTask
      description: 'This endpoint deletes a task based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Task deleted successfully.'
                      id: '262'
                      title: 'From API'
                      parent_id: 377
                      parent_type: project
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Task deleted successfully.'
                      id:
                        type: string
                        example: '262'
                      title:
                        type: string
                        example: 'From API'
                      parent_id:
                        type: integer
                        example: 377
                      parent_type:
                        type: string
                        example: project
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Task not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Task not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the task.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the task.'
      tags:
        - 'Task Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the task to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/tasks/information/{id}/comments':
    post:
      summary: 'Add a comment with attachments.'
      operationId: addACommentWithAttachments
      description: "This endpoint allows authenticated users to add comments to a specific model (e.g., tasks, projects).\nUsers can also attach files and mention other users."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: true
                  message: 'Comment Added Successfully'
                  comment:
                    id: 45
                    commentable_type: App\Models\Task
                    commentable_id: 438
                    content: 'This is a sample comment with a mention @JohnDoe'
                    user_id: 7
                    parent_id: null
                    created_at: '2 minutes ago'
                    attachments:
                      -
                        id: 1
                        file_name: document.pdf
                        file_path: comment_attachments/document.pdf
                        file_type: application/pdf
                  user:
                    id: 7
                    name: 'John Doe'
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Comment Added Successfully'
                  comment:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 45
                      commentable_type:
                        type: string
                        example: App\Models\Task
                      commentable_id:
                        type: integer
                        example: 438
                      content:
                        type: string
                        example: 'This is a sample comment with a mention @JohnDoe'
                      user_id:
                        type: integer
                        example: 7
                      parent_id:
                        type: string
                        example: null
                      created_at:
                        type: string
                        example: '2 minutes ago'
                      attachments:
                        type: array
                        example:
                          -
                            id: 1
                            file_name: document.pdf
                            file_path: comment_attachments/document.pdf
                            file_type: application/pdf
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            file_name:
                              type: string
                              example: document.pdf
                            file_path:
                              type: string
                              example: comment_attachments/document.pdf
                            file_type:
                              type: string
                              example: application/pdf
                  user:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 7
                      name:
                        type: string
                        example: 'John Doe'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  message: 'Validation errors occurred'
                  errors:
                    content:
                      - 'Please enter a comment.'
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      content:
                        type: array
                        example:
                          - 'Please enter a comment.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  success: false
                  message: 'Comment could not be added.'
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Comment could not be added.'
      tags:
        - 'Task Comments'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                model_type:
                  type: string
                  description: 'The type of model being commented on (e.g., "Task", "Project").'
                  example: et
                model_id:
                  type: integer
                  description: 'The ID of the model being commented on.'
                  example: 16
                content:
                  type: string
                  description: 'The comment text.'
                  example: sed
                parent_id:
                  type: integer
                  description: 'optional The ID of the parent comment (for replies).'
                  example: 1
                'attachments[]':
                  type: string
                  format: binary
                  description: 'optional An array of files to attach to the comment. Supported formats: jpg, jpeg, png, pdf, xlsx, txt, docx (max size: 2MB).'
              required:
                - model_type
                - model_id
                - content
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the information.'
        example: omnis
        required: true
        schema:
          type: string
  '/api/tasks/comments/get/{id}':
    get:
      summary: 'Get details of a specific comment.'
      operationId: getDetailsOfASpecificComment
      description: 'This endpoint retrieves the details of a specific comment, including any attachments.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Comment retrieved successfully.'
                  comment:
                    id: 45
                    commentable_type: App\Models\Task
                    commentable_id: 438
                    content: 'This is a sample comment with a mention @JohnDoe'
                    user_id: 7
                    parent_id: null
                    created_at: '2025-03-03 14:00:00'
                    updated_at: '2025-03-03 16:00:00'
                    attachments:
                      -
                        id: 1
                        file_name: document.pdf
                        file_path: comment_attachments/document.pdf
                        file_type: application/pdf
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Comment retrieved successfully.'
                  comment:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 45
                      commentable_type:
                        type: string
                        example: App\Models\Task
                      commentable_id:
                        type: integer
                        example: 438
                      content:
                        type: string
                        example: 'This is a sample comment with a mention @JohnDoe'
                      user_id:
                        type: integer
                        example: 7
                      parent_id:
                        type: string
                        example: null
                      created_at:
                        type: string
                        example: '2025-03-03 14:00:00'
                      updated_at:
                        type: string
                        example: '2025-03-03 16:00:00'
                      attachments:
                        type: array
                        example:
                          -
                            id: 1
                            file_name: document.pdf
                            file_path: comment_attachments/document.pdf
                            file_type: application/pdf
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            file_name:
                              type: string
                              example: document.pdf
                            file_path:
                              type: string
                              example: comment_attachments/document.pdf
                            file_type:
                              type: string
                              example: application/pdf
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Comment not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Comment not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Could not retrieve comment.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Could not retrieve comment.'
      tags:
        - 'Task Comments'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the comment to retrieve.'
        example: 11
        required: true
        schema:
          type: integer
  /api/tasks/comments/update:
    post:
      summary: 'Update a comment.'
      operationId: updateAComment
      description: 'This endpoint updates a specified comment. The user must be authenticated and have permission to modify the comment.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Comment updated successfully.'
                  id: 45
                  type: task
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Comment updated successfully.'
                  id:
                    type: integer
                    example: 45
                  type:
                    type: string
                    example: task
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Comment not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Comment not found.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    content:
                      - 'Please enter a comment.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      content:
                        type: array
                        example:
                          - 'Please enter a comment.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Comment couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Comment couldn't be updated."
      tags:
        - 'Task Comments'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                comment_id:
                  type: integer
                  description: 'The ID of the comment to be updated.'
                  example: 8
                content:
                  type: string
                  description: 'The updated content of the comment.'
                  example: possimus
              required:
                - comment_id
                - content
  /api/tasks/comments/destroy:
    delete:
      summary: 'Delete a comment.'
      operationId: deleteAComment
      description: "This endpoint deletes a specified comment and removes its attachments from storage.\nThe user must be authenticated and have permission to delete comments."
      parameters:
        -
          in: query
          name: comment_id
          description: 'The ID of the comment to delete.'
          example: 12
          required: true
          schema:
            type: integer
            description: 'The ID of the comment to delete.'
            example: 12
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Comment deleted successfully.'
                  id: 45
                  type: task
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Comment deleted successfully.'
                  id:
                    type: integer
                    example: 45
                  type:
                    type: string
                    example: task
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Comment not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Comment not found.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    comment_id:
                      - 'The comment_id field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      comment_id:
                        type: array
                        example:
                          - 'The comment_id field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Comment couldn't be deleted."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Comment couldn't be deleted."
      tags:
        - 'Task Comments'
  /api/reports/income-vs-expense-report-data:
    get:
      summary: 'Get the Income vs Expense Statistics.'
      operationId: getTheIncomeVsExpenseStatistics
      description: "This endpoint provides the Income vs Expense Statistics.\nThe user must be authenticated to access this data."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  total_income: '$ 705.00'
                  total_expenses: '$ 20,000.00'
                  profit_or_loss: '$ -19,295.00'
                  invoices:
                    -
                      id: 3
                      view_route: 'http://localhost:8000/estimates-invoices/view/3'
                      amount: '$ 105.00'
                      to_date: 05-02-2025
                      from_date: 05-02-2025
                    -
                      id: 4
                      view_route: 'http://localhost:8000/estimates-invoices/view/4'
                      amount: '$ 600.00'
                      to_date: 05-02-2025
                      from_date: 05-02-2025
                  expenses:
                    -
                      id: 1
                      title: Salary
                      amount: '$ 500.00'
                      expense_date: 31-01-2025
                    -
                      id: 2
                      title: 'January Rent Pay'
                      amount: '$ 5,000.00'
                      expense_date: 04-02-2025
                    -
                      id: 3
                      title: 'Salary to Karen'
                      amount: '$ 5,000.00'
                      expense_date: 31-01-2025
                    -
                      id: 4
                      title: 'Internet Bill Payment'
                      amount: '$ 300.00'
                      expense_date: 31-01-2025
                    -
                      id: 5
                      title: 'Office Refreshment Items'
                      amount: '$ 1,000.00'
                      expense_date: 31-01-2025
                    -
                      id: 9
                      title: 'Transportation Fuel'
                      amount: '$ 2,000.00'
                      expense_date: 08-02-2025
                    -
                      id: 10
                      title: 'Corporate Tax'
                      amount: '$ 1,200.00'
                      expense_date: 08-02-2025
                    -
                      id: 11
                      title: 'Event Sponsorships'
                      amount: '$ 5,000.00'
                      expense_date: 08-02-2025
                properties:
                  total_income:
                    type: string
                    example: '$ 705.00'
                  total_expenses:
                    type: string
                    example: '$ 20,000.00'
                  profit_or_loss:
                    type: string
                    example: '$ -19,295.00'
                  invoices:
                    type: array
                    example:
                      -
                        id: 3
                        view_route: 'http://localhost:8000/estimates-invoices/view/3'
                        amount: '$ 105.00'
                        to_date: 05-02-2025
                        from_date: 05-02-2025
                      -
                        id: 4
                        view_route: 'http://localhost:8000/estimates-invoices/view/4'
                        amount: '$ 600.00'
                        to_date: 05-02-2025
                        from_date: 05-02-2025
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 3
                        view_route:
                          type: string
                          example: 'http://localhost:8000/estimates-invoices/view/3'
                        amount:
                          type: string
                          example: '$ 105.00'
                        to_date:
                          type: string
                          example: 05-02-2025
                        from_date:
                          type: string
                          example: 05-02-2025
                  expenses:
                    type: array
                    example:
                      -
                        id: 1
                        title: Salary
                        amount: '$ 500.00'
                        expense_date: 31-01-2025
                      -
                        id: 2
                        title: 'January Rent Pay'
                        amount: '$ 5,000.00'
                        expense_date: 04-02-2025
                      -
                        id: 3
                        title: 'Salary to Karen'
                        amount: '$ 5,000.00'
                        expense_date: 31-01-2025
                      -
                        id: 4
                        title: 'Internet Bill Payment'
                        amount: '$ 300.00'
                        expense_date: 31-01-2025
                      -
                        id: 5
                        title: 'Office Refreshment Items'
                        amount: '$ 1,000.00'
                        expense_date: 31-01-2025
                      -
                        id: 9
                        title: 'Transportation Fuel'
                        amount: '$ 2,000.00'
                        expense_date: 08-02-2025
                      -
                        id: 10
                        title: 'Corporate Tax'
                        amount: '$ 1,200.00'
                        expense_date: 08-02-2025
                      -
                        id: 11
                        title: 'Event Sponsorships'
                        amount: '$ 5,000.00'
                        expense_date: 08-02-2025
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        title:
                          type: string
                          example: Salary
                        amount:
                          type: string
                          example: '$ 500.00'
                        expense_date:
                          type: string
                          example: 31-01-2025
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Something went wrong.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Something went wrong.'
      tags:
        - 'Income vs Expense'
  '/api/statuses/{id}':
    get:
      summary: 'List or search statuses.'
      operationId: listOrSearchStatuses
      description: 'This endpoint retrieves a list of statuses based on various filters. The user must be authenticated to perform this action. The request allows searching and sorting by different parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter statuses by title or id.'
          example: Active
          required: false
          schema:
            type: string
            description: 'optional The search term to filter statuses by title or id.'
            example: Active
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, color, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, color, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: limit
          description: 'optional The number of statuses per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of statuses per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Statuses retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 1
                          title: Active
                          color: primary
                          created_at: '20-07-2024 17:50:09'
                          updated_at: '21-07-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Statuses retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            title: Active
                            color: primary
                            created_at: '20-07-2024 17:50:09'
                            updated_at: '21-07-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            title:
                              type: string
                              example: Active
                            color:
                              type: string
                              example: primary
                            created_at:
                              type: string
                              example: '20-07-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '21-07-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Status not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Status not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Statuses not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Statuses not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Status Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the status to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/status/store:
    post:
      summary: 'Create a new status.'
      operationId: createANewStatus
      description: 'This endpoint allows authenticated users to create a new status with a unique slug and assign roles to it.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Status created successfully.'
                  id: 101
                  status:
                    id: 101
                    title: 'In Progress'
                    color: primary
                    slug: in-progress
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Status created successfully.'
                  id:
                    type: integer
                    example: 101
                  status:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 101
                      title:
                        type: string
                        example: 'In Progress'
                      color:
                        type: string
                        example: primary
                      slug:
                        type: string
                        example: in-progress
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred.'
                  errors:
                    title:
                      - 'The title field is required.'
                    color:
                      - 'The color field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred.'
                  errors:
                    type: object
                    properties:
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      color:
                        type: array
                        example:
                          - 'The color field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Status couldn't be created."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Status couldn't be created."
      tags:
        - 'Status Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The title of the status.'
                  example: numquam
                color:
                  type: string
                  description: 'The color code associated with the status.'
                  example: voluptatem
                role_ids:
                  type: array
                  description: 'optional An array of role IDs to be associated with the status.'
                  example:
                    - esse
                  items:
                    type: string
              required:
                - title
                - color
  /api/status/update:
    post:
      summary: 'Update an existing status.'
      operationId: updateAnExistingStatus
      description: 'This endpoint allows authenticated users to update a status, including modifying the title, color, and associated roles.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Status updated successfully.'
                  id: 101
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Status updated successfully.'
                  id:
                    type: integer
                    example: 101
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Status not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Status not found.'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred.'
                  errors:
                    id:
                      - 'The id field is required.'
                    title:
                      - 'The title field is required.'
                    color:
                      - 'The color field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred.'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The id field is required.'
                        items:
                          type: string
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      color:
                        type: array
                        example:
                          - 'The color field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Status couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Status couldn't be updated."
      tags:
        - 'Status Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the status to update.'
                  example: 15
                title:
                  type: string
                  description: 'The updated title of the status.'
                  example: distinctio
                color:
                  type: string
                  description: 'The updated color code associated with the status.'
                  example: et
                role_ids:
                  type: array
                  description: 'optional An array of role IDs to associate with the status.'
                  example:
                    - necessitatibus
                  items:
                    type: string
              required:
                - id
                - title
                - color
  '/api/status/get/{id}':
    get:
      summary: 'Get details of a specific status.'
      operationId: getDetailsOfASpecificStatus
      description: 'This endpoint retrieves the details of a specific status, including the roles associated with it.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Status retrieved successfully.'
                  status:
                    id: 101
                    title: 'In Progress'
                    color: primary
                    slug: in-progress
                  roles:
                    - 1
                    - 2
                    - 3
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Status retrieved successfully.'
                  status:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 101
                      title:
                        type: string
                        example: 'In Progress'
                      color:
                        type: string
                        example: primary
                      slug:
                        type: string
                        example: in-progress
                  roles:
                    type: array
                    example:
                      - 1
                      - 2
                      - 3
                    items:
                      type: integer
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Status not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Status not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Could not retrieve status.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Could not retrieve status.'
      tags:
        - 'Status Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the status to retrieve.'
        example: 16
        required: true
        schema:
          type: integer
  '/api/status/destroy/{id}':
    delete:
      summary: 'Delete a status.'
      operationId: deleteAStatus
      description: "This endpoint allows authenticated users to delete a specific status. Before deletion,\nall associated projects and tasks will be updated to have a default status ID of `0`."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Status deleted successfully.'
                  id: 101
                  title: 'In Progress'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Status deleted successfully.'
                  id:
                    type: integer
                    example: 101
                  title:
                    type: string
                    example: 'In Progress'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Status not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Status not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Status couldn't be deleted."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Status couldn't be deleted."
      tags:
        - 'Status Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the status to delete.'
        example: 9
        required: true
        schema:
          type: integer
  '/api/priorities/{id}':
    get:
      summary: 'List or search priorities.'
      operationId: listOrSearchPriorities
      description: 'This endpoint retrieves a list of priorities based on various filters. The user must be authenticated to perform this action. The request allows searching and sorting by different parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter priorities by title or id.'
          example: High
          required: false
          schema:
            type: string
            description: 'optional The search term to filter priorities by title or id.'
            example: High
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, color, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, color, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: limit
          description: 'optional The number of priorities per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of priorities per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Priorities retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 1
                          title: High
                          color: primary
                          created_at: '20-07-2024 17:50:09'
                          updated_at: '21-07-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Priorities retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            title: High
                            color: primary
                            created_at: '20-07-2024 17:50:09'
                            updated_at: '21-07-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            title:
                              type: string
                              example: High
                            color:
                              type: string
                              example: primary
                            created_at:
                              type: string
                              example: '20-07-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '21-07-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Priority not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Priority not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Priorities not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Priorities not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Priority Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the priority to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  '/api/tags/{id}':
    get:
      summary: 'List or search tags.'
      operationId: listOrSearchTags
      description: 'This endpoint retrieves a list of tags based on various filters. The user must be authenticated to perform this action. The request allows searching and sorting by different parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter tags by title or id.'
          example: Urgent
          required: false
          schema:
            type: string
            description: 'optional The search term to filter tags by title or id.'
            example: Urgent
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: limit
          description: 'optional The number of tags per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of tags per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Tags retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 1
                          title: Urgent
                          color: primary
                          created_at: '20-07-2024 17:50:09'
                          updated_at: '21-07-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Tags retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            title: Urgent
                            color: primary
                            created_at: '20-07-2024 17:50:09'
                            updated_at: '21-07-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            title:
                              type: string
                              example: Urgent
                            color:
                              type: string
                              example: primary
                            created_at:
                              type: string
                              example: '20-07-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '21-07-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Tag not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Tag not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Tags not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Tags not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Tag Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the tag to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  '/api/users/{id}':
    get:
      summary: 'List or search users.'
      operationId: listOrSearchUsers
      description: 'This endpoint retrieves a list of users based on various filters. The user must be authenticated to perform this action. The request allows filtering by status, search term, role, type, type_id, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter users by id, first name, last name, phone, or email.'
          example: John
          required: false
          schema:
            type: string
            description: 'optional The search term to filter users by id, first name, last name, phone, or email.'
            example: John
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, phone, dob, doj, created_at, and updated_at.'
          example: id
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, phone, dob, doj, created_at, and updated_at.'
            example: id
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: status
          description: 'optional The status ID to filter users by, either 0 or 1.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'optional The status ID to filter users by, either 0 or 1.'
            example: 1
        -
          in: query
          name: role_ids
          description: 'optional The role IDs to filter users by.'
          example:
            - 1
            - 2
          required: false
          schema:
            type: array
            description: 'optional The role IDs to filter users by.'
            example:
              - 1
              - 2
            items:
              type: string
        -
          in: query
          name: type
          description: 'optional The type of filter to apply, either "project" or "task".'
          example: project
          required: false
          schema:
            type: string
            description: 'optional The type of filter to apply, either "project" or "task".'
            example: project
        -
          in: query
          name: type_id
          description: 'optional The ID associated with the type filter.'
          example: 3
          required: false
          schema:
            type: integer
            description: 'optional The ID associated with the type filter.'
            example: 3
        -
          in: query
          name: limit
          description: 'optional The number of users per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of users per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Users retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 219
                          first_name: Test
                          last_name: Test
                          role: Member
                          email: test@gmail.com
                          phone: '+91 1111111111'
                          dob: 09-08-2024
                          doj: 09-08-2024
                          address: Test
                          city: Test
                          state: Test
                          country: Test
                          zip: 111-111
                          photo: 'https://test-taskify.infinitietech.com/storage/photos/K0OAOzWyoeD0ZXBzgsaeHZUZERbOTKRljRIYOEYU.png'
                          status: 1
                          created_at: '09-08-2024 17:04:29'
                          updated_at: '09-08-2024 17:04:29'
                          assigned:
                            projects: 0
                            tasks: 0
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Users retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 219
                            first_name: Test
                            last_name: Test
                            role: Member
                            email: test@gmail.com
                            phone: '+91 1111111111'
                            dob: 09-08-2024
                            doj: 09-08-2024
                            address: Test
                            city: Test
                            state: Test
                            country: Test
                            zip: 111-111
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/K0OAOzWyoeD0ZXBzgsaeHZUZERbOTKRljRIYOEYU.png'
                            status: 1
                            created_at: '09-08-2024 17:04:29'
                            updated_at: '09-08-2024 17:04:29'
                            assigned:
                              projects: 0
                              tasks: 0
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 219
                            first_name:
                              type: string
                              example: Test
                            last_name:
                              type: string
                              example: Test
                            role:
                              type: string
                              example: Member
                            email:
                              type: string
                              example: test@gmail.com
                            phone:
                              type: string
                              example: '+91 1111111111'
                            dob:
                              type: string
                              example: 09-08-2024
                            doj:
                              type: string
                              example: 09-08-2024
                            address:
                              type: string
                              example: Test
                            city:
                              type: string
                              example: Test
                            state:
                              type: string
                              example: Test
                            country:
                              type: string
                              example: Test
                            zip:
                              type: string
                              example: 111-111
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/K0OAOzWyoeD0ZXBzgsaeHZUZERbOTKRljRIYOEYU.png'
                            status:
                              type: integer
                              example: 1
                            created_at:
                              type: string
                              example: '09-08-2024 17:04:29'
                            updated_at:
                              type: string
                              example: '09-08-2024 17:04:29'
                            assigned:
                              type: object
                              properties:
                                projects:
                                  type: integer
                                  example: 0
                                tasks:
                                  type: integer
                                  example: 0
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'User not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'User not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Users not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Users not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Project not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Project not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Task not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Task not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'User Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the user to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/users/store:
    post:
      summary: 'Create a new user.'
      operationId: createANewUser
      description: 'This endpoint creates a new user with the provided details. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'User created successfully.'
                  id: 219
                  data:
                    id: 219
                    first_name: Test
                    last_name: Test
                    role: Member
                    email: test@gmail.com
                    phone: '+91 1111111111'
                    dob: 09-08-2024
                    doj: 09-08-2024
                    address: Test
                    city: Test
                    state: Test
                    country: Test
                    zip: 111-111
                    photo: 'https://test-taskify.infinitietech.com/storage/photos/K0OAOzWyoeD0ZXBzgsaeHZUZERbOTKRljRIYOEYU.png'
                    status: 1
                    created_at: '09-08-2024 17:04:29'
                    updated_at: '09-08-2024 17:04:29'
                    assigned:
                      projects: 0
                      tasks: 0
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'User created successfully.'
                  id:
                    type: integer
                    example: 219
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 219
                      first_name:
                        type: string
                        example: Test
                      last_name:
                        type: string
                        example: Test
                      role:
                        type: string
                        example: Member
                      email:
                        type: string
                        example: test@gmail.com
                      phone:
                        type: string
                        example: '+91 1111111111'
                      dob:
                        type: string
                        example: 09-08-2024
                      doj:
                        type: string
                        example: 09-08-2024
                      address:
                        type: string
                        example: Test
                      city:
                        type: string
                        example: Test
                      state:
                        type: string
                        example: Test
                      country:
                        type: string
                        example: Test
                      zip:
                        type: string
                        example: 111-111
                      photo:
                        type: string
                        example: 'https://test-taskify.infinitietech.com/storage/photos/K0OAOzWyoeD0ZXBzgsaeHZUZERbOTKRljRIYOEYU.png'
                      status:
                        type: integer
                        example: 1
                      created_at:
                        type: string
                        example: '09-08-2024 17:04:29'
                      updated_at:
                        type: string
                        example: '09-08-2024 17:04:29'
                      assigned:
                        type: object
                        properties:
                          projects:
                            type: integer
                            example: 0
                          tasks:
                            type: integer
                            example: 0
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    first_name:
                      - 'The first name field is required.'
                    last_name:
                      - 'The last name field is required.'
                    email:
                      - 'The email has already been taken.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      first_name:
                        type: array
                        example:
                          - 'The first name field is required.'
                        items:
                          type: string
                      last_name:
                        type: array
                        example:
                          - 'The last name field is required.'
                        items:
                          type: string
                      email:
                        type: array
                        example:
                          - 'The email has already been taken.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'User couldn’t be created, please make sure email settings are operational.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'User couldn’t be created, please make sure email settings are operational.'
      tags:
        - 'User Management'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: 'The first name of the user.'
                  example: John
                last_name:
                  type: string
                  description: 'The last name of the user.'
                  example: Doe
                email:
                  type: string
                  description: 'The email address of the user.'
                  example: john.doe@example.com
                password:
                  type: string
                  description: 'The password for the user.'
                  example: password123
                password_confirmation:
                  type: string
                  description: 'The password confirmation.'
                  example: password123
                address:
                  type: string
                  description: 'nullable The address of the user.'
                  example: '123 Main St'
                phone:
                  type: string
                  description: 'nullable The phone number of the user.'
                  example: '1234567890'
                country_code:
                  type: string
                  description: 'nullable The country code for the phone number.'
                  example: '+91'
                country_iso_code:
                  type: string
                  description: 'nullable The ISO code for the phone number.'
                  example: in
                city:
                  type: string
                  description: 'nullable The city of the user.'
                  example: 'New York'
                state:
                  type: string
                  description: 'nullable The state of the user.'
                  example: NY
                country:
                  type: string
                  description: 'nullable The country of the user.'
                  example: USA
                zip:
                  type: string
                  description: 'nullable The ZIP code of the user.'
                  example: '10001'
                dob:
                  type: string
                  description: 'nullable The date of birth of the user in the format specified in the general settings.'
                  example: '1990-01-01'
                doj:
                  type: string
                  description: 'nullable The date of joining in the format specified in the general settings.'
                  example: '2024-01-01'
                role:
                  type: integer
                  description: 'The ID of the role for the user.'
                  example: 1
                profile:
                  type: string
                  format: binary
                  description: 'nullable The profile photo of the user.'
                status:
                  type: boolean
                  description: "0 or 1. If Deactivated (0), the user won't be able to log in to their account.\nCan only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else 0 will be considered by default."
                  example: true
                require_ev:
                  type: boolean
                  description: "0 or 1. If Yes (1) is selected, the user will receive a verification link via email.\nCan only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else 1 will be considered by default."
                  example: true
              required:
                - first_name
                - last_name
                - email
                - password
                - password_confirmation
                - role
                - status
                - require_ev
  /api/users/update:
    post:
      summary: 'Update an existing user.'
      operationId: updateAnExistingUser
      description: 'This endpoint updates the details of an existing user. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'User updated successfully.'
                  id: 219
                  data:
                    id: 219
                    first_name: APII
                    last_name: User
                    role: Member
                    email: test@gmail.com
                    phone: '+91 1111111111'
                    dob: 09-08-2024
                    doj: 09-08-2024
                    address: 'Test adr'
                    city: 'Test cty'
                    state: 'Test ct'
                    country: 'test ctr'
                    zip: 111-111
                    photo: 'https://test-taskify.infinitietech.com/storage/photos/28NcF6qzmIRiOhN9zrtEu5x1iN55OBspR9o1ONMO.webp'
                    status: '1'
                    created_at: '09-08-2024 17:04:29'
                    updated_at: '09-08-2024 18:32:10'
                    assigned:
                      projects: 14
                      tasks: 12
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'User updated successfully.'
                  id:
                    type: integer
                    example: 219
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 219
                      first_name:
                        type: string
                        example: APII
                      last_name:
                        type: string
                        example: User
                      role:
                        type: string
                        example: Member
                      email:
                        type: string
                        example: test@gmail.com
                      phone:
                        type: string
                        example: '+91 1111111111'
                      dob:
                        type: string
                        example: 09-08-2024
                      doj:
                        type: string
                        example: 09-08-2024
                      address:
                        type: string
                        example: 'Test adr'
                      city:
                        type: string
                        example: 'Test cty'
                      state:
                        type: string
                        example: 'Test ct'
                      country:
                        type: string
                        example: 'test ctr'
                      zip:
                        type: string
                        example: 111-111
                      photo:
                        type: string
                        example: 'https://test-taskify.infinitietech.com/storage/photos/28NcF6qzmIRiOhN9zrtEu5x1iN55OBspR9o1ONMO.webp'
                      status:
                        type: string
                        example: '1'
                      created_at:
                        type: string
                        example: '09-08-2024 17:04:29'
                      updated_at:
                        type: string
                        example: '09-08-2024 18:32:10'
                      assigned:
                        type: object
                        properties:
                          projects:
                            type: integer
                            example: 14
                          tasks:
                            type: integer
                            example: 12
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    first_name:
                      - 'The first name field is required.'
                    last_name:
                      - 'The last name field is required.'
                    email:
                      - 'The email has already been taken.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      first_name:
                        type: array
                        example:
                          - 'The first name field is required.'
                        items:
                          type: string
                      last_name:
                        type: array
                        example:
                          - 'The last name field is required.'
                        items:
                          type: string
                      email:
                        type: array
                        example:
                          - 'The email has already been taken.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "User couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "User couldn't be updated."
      tags:
        - 'User Management'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the user to be updated.'
                  example: 1
                first_name:
                  type: string
                  description: 'The first name of the user.'
                  example: John
                last_name:
                  type: string
                  description: 'The last name of the user.'
                  example: Doe
                email:
                  type: string
                  description: 'The email address of the user.'
                  example: john.doe@example.com
                password:
                  type: string
                  description: 'nullable The new password for the user. Can only be updated if `is_admin_or_has_all_data_access` is true for the logged-in user.'
                  example: newpassword123
                password_confirmation:
                  type: string
                  description: 'required_with:password The password confirmation.'
                  example: newpassword123
                address:
                  type: string
                  description: 'nullable The address of the user.'
                  example: '123 Main St'
                phone:
                  type: string
                  description: 'nullable The phone number of the user.'
                  example: '1234567890'
                country_code:
                  type: string
                  description: 'nullable The country code for the phone number.'
                  example: '+91'
                country_iso_code:
                  type: string
                  description: 'nullable The ISO code for the phone number.'
                  example: in
                city:
                  type: string
                  description: 'nullable The city of the user.'
                  example: 'New York'
                state:
                  type: string
                  description: 'nullable The state of the user.'
                  example: NY
                country:
                  type: string
                  description: 'nullable The country of the user.'
                  example: USA
                zip:
                  type: string
                  description: 'nullable The ZIP code of the user.'
                  example: '10001'
                dob:
                  type: string
                  description: 'nullable The date of birth of the user in the format specified in the general settings.'
                  example: '1990-01-01'
                doj:
                  type: string
                  description: 'nullable The date of joining in the format specified in the general settings.'
                  example: '2024-01-01'
                role:
                  type: integer
                  description: 'The ID of the role for the user.'
                  example: 1
                profile:
                  type: string
                  format: binary
                  description: 'nullable The new profile photo of the user.'
                status:
                  type: boolean
                  description: "0 or 1. If Deactivated (0), the user won't be able to log in to their account.\nCan only specify status if `is_admin_or_has_all_data_access` is true for the logged-in user, else the current status will be considered by default."
                  example: true
              required:
                - id
                - first_name
                - last_name
                - email
                - role
                - status
  '/api/users/destroy/{id}':
    delete:
      summary: 'Remove the specified user.'
      operationId: removeTheSpecifiedUser
      description: 'This endpoint deletes a user based on the provided ID. The request must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'User deleted successfully.'
                      id: '1'
                      title: 'John Doe'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'User deleted successfully.'
                      id:
                        type: string
                        example: '1'
                      title:
                        type: string
                        example: 'John Doe'
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'User not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'User not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An internal server error occurred.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An internal server error occurred.'
      tags:
        - 'User Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the user to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/clients/{id}':
    get:
      summary: 'List or search clients.'
      operationId: listOrSearchClients
      description: 'This endpoint retrieves a list of clients based on various filters. The user must be authenticated to perform this action. The request allows filtering by status, search term, type, type_id, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter clients by id, first name, last name, comapny, phone, or email.'
          example: John
          required: false
          schema:
            type: string
            description: 'optional The search term to filter clients by id, first name, last name, comapny, phone, or email.'
            example: John
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, company, phone, created_at, and updated_at.'
          example: id
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, company, phone, created_at, and updated_at.'
            example: id
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: status
          description: 'optional The status ID to filter clients by, either 0 or 1.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'optional The status ID to filter clients by, either 0 or 1.'
            example: 1
        -
          in: query
          name: type
          description: 'optional The type of filter to apply, either "project" or "task".'
          example: project
          required: false
          schema:
            type: string
            description: 'optional The type of filter to apply, either "project" or "task".'
            example: project
        -
          in: query
          name: type_id
          description: 'optional The ID associated with the type filter.'
          example: 3
          required: false
          schema:
            type: integer
            description: 'optional The ID associated with the type filter.'
            example: 3
        -
          in: query
          name: limit
          description: 'optional The number of clients per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of clients per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Clients retrieved successfully'
                      total: 1
                      clients:
                        -
                          id: 185
                          first_name: Client
                          last_name: Test
                          company: 'Test Company'
                          email: client@test.com
                          phone: '1 5555555555'
                          status: 1
                          internal_purpose: 1
                          created_at: 10-06-2024
                          updated_at: 29-07-2024
                          assigned:
                            projects: 0
                            tasks: 0
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Clients retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      clients:
                        type: array
                        example:
                          -
                            id: 185
                            first_name: Client
                            last_name: Test
                            company: 'Test Company'
                            email: client@test.com
                            phone: '1 5555555555'
                            status: 1
                            internal_purpose: 1
                            created_at: 10-06-2024
                            updated_at: 29-07-2024
                            assigned:
                              projects: 0
                              tasks: 0
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 185
                            first_name:
                              type: string
                              example: Client
                            last_name:
                              type: string
                              example: Test
                            company:
                              type: string
                              example: 'Test Company'
                            email:
                              type: string
                              example: client@test.com
                            phone:
                              type: string
                              example: '1 5555555555'
                            status:
                              type: integer
                              example: 1
                            internal_purpose:
                              type: integer
                              example: 1
                            created_at:
                              type: string
                              example: 10-06-2024
                            updated_at:
                              type: string
                              example: 29-07-2024
                            assigned:
                              type: object
                              properties:
                                projects:
                                  type: integer
                                  example: 0
                                tasks:
                                  type: integer
                                  example: 0
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Client not found'
                      total: 0
                      clients: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Client not found'
                      total:
                        type: integer
                        example: 0
                      clients:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Clients not found'
                      total: 0
                      clients: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Clients not found'
                      total:
                        type: integer
                        example: 0
                      clients:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Project not found'
                      total: 0
                      clients: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Project not found'
                      total:
                        type: integer
                        example: 0
                      clients:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Task not found'
                      total: 0
                      clients: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Task not found'
                      total:
                        type: integer
                        example: 0
                      clients:
                        type: array
                        example: []
      tags:
        - 'Client Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the client to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/clients/store:
    post:
      summary: 'Store a new client.'
      operationId: storeANewClient
      description: 'This endpoint creates a new client. The client must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Client created successfully.'
                  data:
                    id: 183
                    first_name: API
                    last_name: Client
                    company: test
                    email: 777@gmail.com
                    phone: '+91 1111111111'
                    address: 'Test adr'
                    city: 'Test cty'
                    state: 'Test ct'
                    country: 'test ctr'
                    zip: 111-111
                    photo: 'https://test-taskify.infinitietech.com/storage/photos/a5xT73btrbk7sybc0768Bv8xlBn16ROK1Znf1Ddc.webp'
                    status: '1'
                    internal_purpose: 0
                    created_at: '09-08-2024 19:22:17'
                    updated_at: '09-08-2024 20:10:06'
                    assigned:
                      projects: 0
                      tasks: 0
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Client created successfully.'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 183
                      first_name:
                        type: string
                        example: API
                      last_name:
                        type: string
                        example: Client
                      company:
                        type: string
                        example: test
                      email:
                        type: string
                        example: 777@gmail.com
                      phone:
                        type: string
                        example: '+91 1111111111'
                      address:
                        type: string
                        example: 'Test adr'
                      city:
                        type: string
                        example: 'Test cty'
                      state:
                        type: string
                        example: 'Test ct'
                      country:
                        type: string
                        example: 'test ctr'
                      zip:
                        type: string
                        example: 111-111
                      photo:
                        type: string
                        example: 'https://test-taskify.infinitietech.com/storage/photos/a5xT73btrbk7sybc0768Bv8xlBn16ROK1Znf1Ddc.webp'
                      status:
                        type: string
                        example: '1'
                      internal_purpose:
                        type: integer
                        example: 0
                      created_at:
                        type: string
                        example: '09-08-2024 19:22:17'
                      updated_at:
                        type: string
                        example: '09-08-2024 20:10:06'
                      assigned:
                        type: object
                        properties:
                          projects:
                            type: integer
                            example: 0
                          tasks:
                            type: integer
                            example: 0
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    first_name:
                      - 'The first name field is required.'
                    last_name:
                      - 'The last name field is required.'
                    email:
                      - 'The email has already been taken.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      first_name:
                        type: array
                        example:
                          - 'The first name field is required.'
                        items:
                          type: string
                      last_name:
                        type: array
                        example:
                          - 'The last name field is required.'
                        items:
                          type: string
                      email:
                        type: array
                        example:
                          - 'The email has already been taken.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Client couldn’t be created, please make sure email settings are operational.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Client couldn’t be created, please make sure email settings are operational.'
      tags:
        - 'Client Management'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: 'The first name of the client.'
                  example: John
                last_name:
                  type: string
                  description: 'The last name of the client.'
                  example: Doe
                company:
                  type: string
                  description: 'nullable The company of the client.'
                  example: 'Example Corp'
                email:
                  type: string
                  description: 'The email address of the client.'
                  example: john.doe@example.com
                phone:
                  type: string
                  description: 'nullable The phone number of the client.'
                  example: '1234567890'
                country_code:
                  type: string
                  description: 'nullable The country code for the phone number.'
                  example: '+91'
                country_iso_code:
                  type: string
                  description: 'nullable The ISO code for the phone number.'
                  example: in
                password:
                  type: string
                  description: 'The password for the client. Must be confirmed and at least 6 characters long.'
                  example: password123
                password_confirmation:
                  type: string
                  description: 'The password confirmation. Required if password is provided.'
                  example: password123
                address:
                  type: string
                  description: 'nullable The address of the client.'
                  example: '123 Main St'
                city:
                  type: string
                  description: 'nullable The city of the client.'
                  example: 'New York'
                state:
                  type: string
                  description: 'nullable The state of the client.'
                  example: NY
                country:
                  type: string
                  description: 'nullable The country of the client.'
                  example: USA
                zip:
                  type: string
                  description: 'nullable The ZIP code of the client.'
                  example: '10001'
                dob:
                  type: string
                  description: 'nullable The date of birth of the user in the format specified in the general settings.'
                  example: '1990-01-01'
                doj:
                  type: string
                  description: 'nullable The date of joining in the format specified in the general settings.'
                  example: '2024-01-01'
                internal_purpose:
                  type: string
                  description: "nullable Set to 'on' if the client is for internal purposes."
                  example: 'on'
                profile:
                  type: string
                  format: binary
                  description: 'nullable The profile photo of the client.'
                status:
                  type: boolean
                  description: "0 or 1. If Deactivated (0), the client won't be able to log in to their account.\nCan only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else 0 will be considered by default."
                  example: true
                require_ev:
                  type: boolean
                  description: "0 or 1. If Yes (1) is selected, the client will receive a verification link via email.\nCan only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else 1 will be considered by default."
                  example: true
              required:
                - first_name
                - last_name
                - email
                - password
                - password_confirmation
                - status
                - require_ev
  /api/clients/update:
    post:
      summary: 'Update an existing client.'
      operationId: updateAnExistingClient
      description: 'This endpoint updates the details of an existing client. The client must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Client updated successfully.'
                  data:
                    id: 183
                    first_name: API
                    last_name: Client
                    company: test
                    email: 777@gmail.com
                    phone: '+91 1111111111'
                    address: 'Test adr'
                    city: 'Test cty'
                    state: 'Test ct'
                    country: 'test ctr'
                    zip: 111-111
                    photo: 'https://test-taskify.infinitietech.com/storage/photos/a5xT73btrbk7sybc0768Bv8xlBn16ROK1Znf1Ddc.webp'
                    status: '1'
                    internal_purpose: 0
                    created_at: '09-08-2024 19:22:17'
                    updated_at: '09-08-2024 20:10:06'
                    assigned:
                      projects: 0
                      tasks: 0
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Client updated successfully.'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 183
                      first_name:
                        type: string
                        example: API
                      last_name:
                        type: string
                        example: Client
                      company:
                        type: string
                        example: test
                      email:
                        type: string
                        example: 777@gmail.com
                      phone:
                        type: string
                        example: '+91 1111111111'
                      address:
                        type: string
                        example: 'Test adr'
                      city:
                        type: string
                        example: 'Test cty'
                      state:
                        type: string
                        example: 'Test ct'
                      country:
                        type: string
                        example: 'test ctr'
                      zip:
                        type: string
                        example: 111-111
                      photo:
                        type: string
                        example: 'https://test-taskify.infinitietech.com/storage/photos/a5xT73btrbk7sybc0768Bv8xlBn16ROK1Znf1Ddc.webp'
                      status:
                        type: string
                        example: '1'
                      internal_purpose:
                        type: integer
                        example: 0
                      created_at:
                        type: string
                        example: '09-08-2024 19:22:17'
                      updated_at:
                        type: string
                        example: '09-08-2024 20:10:06'
                      assigned:
                        type: object
                        properties:
                          projects:
                            type: integer
                            example: 0
                          tasks:
                            type: integer
                            example: 0
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    first_name:
                      - 'The first name field is required.'
                    last_name:
                      - 'The last name field is required.'
                    email:
                      - 'The email has already been taken.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      first_name:
                        type: array
                        example:
                          - 'The first name field is required.'
                        items:
                          type: string
                      last_name:
                        type: array
                        example:
                          - 'The last name field is required.'
                        items:
                          type: string
                      email:
                        type: array
                        example:
                          - 'The email has already been taken.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Client couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Client couldn't be updated."
      tags:
        - 'Client Management'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the client to be updated.'
                  example: 1
                first_name:
                  type: string
                  description: 'The first name of the client.'
                  example: John
                last_name:
                  type: string
                  description: 'The last name of the client.'
                  example: Doe
                company:
                  type: string
                  description: 'nullable The company of the client.'
                  example: XYZ
                email:
                  type: string
                  description: 'The email address of the client.'
                  example: john.doe@example.com
                password:
                  type: string
                  description: 'nullable The new password for the client. Can only be updated if `is_admin_or_has_all_data_access` is true for the logged-in user.'
                  example: newpassword123
                password_confirmation:
                  type: string
                  description: 'required_with:password The password confirmation.'
                  example: newpassword123
                address:
                  type: string
                  description: 'nullable The address of the client.'
                  example: '123 Main St'
                phone:
                  type: string
                  description: 'nullable The phone number of the client.'
                  example: '1234567890'
                country_code:
                  type: string
                  description: 'nullable The country code for the phone number.'
                  example: '+91'
                country_iso_code:
                  type: string
                  description: 'nullable The ISO code for the phone number.'
                  example: in
                city:
                  type: string
                  description: 'nullable The city of the client.'
                  example: 'New York'
                state:
                  type: string
                  description: 'nullable The state of the client.'
                  example: NY
                country:
                  type: string
                  description: 'nullable The country of the client.'
                  example: USA
                zip:
                  type: string
                  description: 'nullable The ZIP code of the client.'
                  example: '10001'
                dob:
                  type: string
                  description: 'nullable The date of birth of the user in the format specified in the general settings.'
                  example: '1990-01-01'
                doj:
                  type: string
                  description: 'nullable The date of joining in the format specified in the general settings.'
                  example: '2024-01-01'
                internal_purpose:
                  type: string
                  description: "nullable Set to 'on' if the client is for internal purposes."
                  example: 'on'
                profile:
                  type: string
                  format: binary
                  description: 'nullable The new profile photo of the client.'
                status:
                  type: boolean
                  description: "0 or 1. If Deactivated (0), the client won't be able to log in to their account.\nCan only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else the current status will be considered by default."
                  example: true
                require_ev:
                  type: boolean
                  description: "0 or 1. If Yes (1) is selected, the client will receive a verification link via email.\nCan only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else the current require_ev will be considered by default."
                  example: true
              required:
                - id
                - first_name
                - last_name
                - email
                - status
                - require_ev
  '/api/clients/destroy/{id}':
    delete:
      summary: 'Remove the specified client.'
      operationId: removeTheSpecifiedClient
      description: 'This endpoint deletes a client based on the provided ID. The request must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      data:
                        error: false
                        message: 'Client deleted successfully.'
                        id: '1'
                        title: 'Jane Doe'
                        data: []
                    properties:
                      data:
                        type: object
                        properties:
                          error:
                            type: boolean
                            example: false
                          message:
                            type: string
                            example: 'Client deleted successfully.'
                          id:
                            type: string
                            example: '1'
                          title:
                            type: string
                            example: 'Jane Doe'
                          data:
                            type: array
                            example: []
                  -
                    description: ''
                    type: object
                    example:
                      data:
                        error: true
                        message: 'Client not found.'
                        data: []
                    properties:
                      data:
                        type: object
                        properties:
                          error:
                            type: boolean
                            example: true
                          message:
                            type: string
                            example: 'Client not found.'
                          data:
                            type: array
                            example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    error: true
                    message: 'An internal server error occurred.'
                properties:
                  data:
                    type: object
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'An internal server error occurred.'
      tags:
        - 'Client Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the client to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  /api/workspaces/store:
    post:
      summary: 'Create a new workspace.'
      operationId: createANewWorkspace
      description: 'This endpoint creates a new workspace with the provided details. The user must be authenticated to perform this action. The request validates various fields, including title and participants.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Workspace created successfully.'
                  id: 438
                  data:
                    id: 438
                    title: 'Design Team'
                    is_primary: true
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    clients:
                      -
                        id: 103
                        first_name: Test
                        last_name: Test
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    created_at: '07-08-2024 14:38:51'
                    updated_at: '07-08-2024 14:38:51'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Workspace created successfully.'
                  id:
                    type: integer
                    example: 438
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 438
                      title:
                        type: string
                        example: 'Design Team'
                      is_primary:
                        type: boolean
                        example: true
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      clients:
                        type: array
                        example:
                          -
                            id: 103
                            first_name: Test
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 103
                            first_name:
                              type: string
                              example: Test
                            last_name:
                              type: string
                              example: Test
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      created_at:
                        type: string
                        example: '07-08-2024 14:38:51'
                      updated_at:
                        type: string
                        example: '07-08-2024 14:38:51'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    title:
                      - 'The title field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while creating the workspace.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while creating the workspace.'
      tags:
        - 'Workspace Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The title of the workspace.'
                  example: 'Design Team'
                user_ids:
                  type: array|null
                  description: 'optional Array of user IDs to be associated with the workspace.'
                  example: '[1, 2, 3]'
                client_ids:
                  type: array|null
                  description: 'optional Array of client IDs to be associated with the workspace.'
                  example: '[5, 6]'
                primaryWorkspace:
                  type: string
                  description: "optional Indicates if this workspace should be set as primary. Can only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else it will be considered 0 by default. The value should be 'on' to set as primary."
                  example: 'on'
              required:
                - title
  '/api/workspaces/{id}':
    get:
      summary: 'List or search workspaces.'
      operationId: listOrSearchWorkspaces
      description: 'This endpoint retrieves a list of workspaces based on various filters. The user must be authenticated to perform this action. The request allows filtering by user, client, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter workspaces by title or id.'
          example: Workspace
          required: false
          schema:
            type: string
            description: 'optional The search term to filter workspaces by title or id.'
            example: Workspace
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: user_id
          description: 'optional The user ID to filter workspaces by.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'optional The user ID to filter workspaces by.'
            example: 1
        -
          in: query
          name: client_id
          description: 'optional The client ID to filter workspaces by.'
          example: 5
          required: false
          schema:
            type: integer
            description: 'optional The client ID to filter workspaces by.'
            example: 5
        -
          in: query
          name: limit
          description: 'optional The number of workspaces per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of workspaces per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Workspaces retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 351
                          title: 'Workspace Title'
                          is_primary: 0
                          users:
                            -
                              id: 7
                              first_name: Madhavan
                              last_name: Vaidya
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients:
                            -
                              id: 12
                              first_name: Client
                              last_name: Name
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/client-photo.png'
                          created_at: '20-07-2024 17:50:09'
                          updated_at: '21-07-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Workspaces retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 351
                            title: 'Workspace Title'
                            is_primary: 0
                            users:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            clients:
                              -
                                id: 12
                                first_name: Client
                                last_name: Name
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/client-photo.png'
                            created_at: '20-07-2024 17:50:09'
                            updated_at: '21-07-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 351
                            title:
                              type: string
                              example: 'Workspace Title'
                            is_primary:
                              type: integer
                              example: 0
                            users:
                              type: array
                              example:
                                -
                                  id: 7
                                  first_name: Madhavan
                                  last_name: Vaidya
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 7
                                  first_name:
                                    type: string
                                    example: Madhavan
                                  last_name:
                                    type: string
                                    example: Vaidya
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            clients:
                              type: array
                              example:
                                -
                                  id: 12
                                  first_name: Client
                                  last_name: Name
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/client-photo.png'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 12
                                  first_name:
                                    type: string
                                    example: Client
                                  last_name:
                                    type: string
                                    example: Name
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/client-photo.png'
                            created_at:
                              type: string
                              example: '20-07-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '21-07-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Workspace not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Workspace not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Workspaces not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Workspaces not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Workspace Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the workspace to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/workspaces/update:
    post:
      summary: 'Update an existing workspace.'
      operationId: updateAnExistingWorkspace
      description: 'This endpoint updates the details of an existing workspace. The user must be authenticated to perform this action. The request validates various fields, including title and participants.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Workspace updated successfully.'
                  id: 438
                  data:
                    id: 438
                    title: 'Design Team'
                    is_primary: true
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    clients:
                      -
                        id: 103
                        first_name: Test
                        last_name: Test
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    created_at: '07-08-2024 14:38:51'
                    updated_at: '07-08-2024 14:38:51'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Workspace updated successfully.'
                  id:
                    type: integer
                    example: 438
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 438
                      title:
                        type: string
                        example: 'Design Team'
                      is_primary:
                        type: boolean
                        example: true
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      clients:
                        type: array
                        example:
                          -
                            id: 103
                            first_name: Test
                            last_name: Test
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 103
                            first_name:
                              type: string
                              example: Test
                            last_name:
                              type: string
                              example: Test
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      created_at:
                        type: string
                        example: '07-08-2024 14:38:51'
                      updated_at:
                        type: string
                        example: '07-08-2024 14:38:51'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    title:
                      - 'The title field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the workspace.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the workspace.'
      tags:
        - 'Workspace Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the workspace to update.'
                  example: 438
                title:
                  type: string
                  description: 'The new title of the workspace.'
                  example: 'Design Team'
                user_ids:
                  type: array|null
                  description: 'optional Array of user IDs to be associated with the workspace.'
                  example: '[1, 2, 3]'
                client_ids:
                  type: array|null
                  description: 'optional Array of client IDs to be associated with the workspace.'
                  example: '[5, 6]'
                primaryWorkspace:
                  type: string
                  description: "optional Indicates if this workspace should be set as primary. Can only specify if `is_admin_or_has_all_data_access` is true for the logged-in user, else current value will be considered by default. The value should be 'on' to set as primary."
                  example: 'on'
              required:
                - id
                - title
  '/api/workspaces/destroy/{id}':
    delete:
      summary: 'Remove the specified workspace.'
      operationId: removeTheSpecifiedWorkspace
      description: 'This endpoint deletes a workspace based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Workspace deleted successfully.'
                      id: '60'
                      title: 'Workspace Title'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Workspace deleted successfully.'
                      id:
                        type: string
                        example: '60'
                      title:
                        type: string
                        example: 'Workspace Title'
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Workspace not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Workspace not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the workspace.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the workspace.'
      tags:
        - 'Workspace Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the workspace to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/workspaces/{id}/default':
    patch:
      summary: 'Set or remove a default workspace for the authenticated user.'
      operationId: setOrRemoveADefaultWorkspaceForTheAuthenticatedUser
      description: 'This endpoint updates whether a workspace is set as the default workspace for the user. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n\"error\": false,\n\"message\": \"Default status updated successfully\"\n\"data\":[Workspace data here]\n}"
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Workspace not found'
                  data: []
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Workspace not found'
                  data:
                    type: array
                    example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Failed to update default workspace'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Failed to update default workspace'
      tags:
        - 'Workspace Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                is_default:
                  type: boolean
                  description: 'Indicates whether the workspace should be set as default. Use 1 for setting as default and 0 for removing it as default.'
                  example: false
              required:
                - is_default
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the workspace to update.'
        example: 2
        required: true
        schema:
          type: integer
  /api/workspaces/remove-participant:
    delete:
      summary: 'Remove the authenticated user from the current workspace.'
      operationId: removeTheAuthenticatedUserFromTheCurrentWorkspace
      description: 'This endpoint removes the authenticated user from the workspace they are currently in. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"error\": false,\n  \"message\": \"Removed from workspace successfully.\",\n  \"data\": {\n    \"workspace_id\": 1\n  }\n}\n}"
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while removing the participant from the workspace.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while removing the participant from the workspace.'
      tags:
        - 'Workspace Management'
  /api/meetings/store:
    post:
      summary: 'Create a new meeting.'
      operationId: createANewMeeting
      description: 'This endpoint creates a new meeting with the provided details. The user must be authenticated to perform this action. The request validates various fields, including title, start and end dates, start and end times, and participant IDs.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Meeting created successfully.'
                  id: 119
                  data:
                    id: 119
                    title: 'From API'
                    start_date: 25-07-2024
                    start_time: '15:00:00'
                    end_date: 25-08-2024
                    end_time: '11:41:05'
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    clients:
                      -
                        id: 173
                        first_name: '666'
                        last_name: '666'
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    status: Ongoing
                    created_at: '07-08-2024 17:11:05'
                    updated_at: '07-08-2024 17:11:05'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Meeting created successfully.'
                  id:
                    type: integer
                    example: 119
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 119
                      title:
                        type: string
                        example: 'From API'
                      start_date:
                        type: string
                        example: 25-07-2024
                      start_time:
                        type: string
                        example: '15:00:00'
                      end_date:
                        type: string
                        example: 25-08-2024
                      end_time:
                        type: string
                        example: '11:41:05'
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      clients:
                        type: array
                        example:
                          -
                            id: 173
                            first_name: '666'
                            last_name: '666'
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 173
                            first_name:
                              type: string
                              example: '666'
                            last_name:
                              type: string
                              example: '666'
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      status:
                        type: string
                        example: Ongoing
                      created_at:
                        type: string
                        example: '07-08-2024 17:11:05'
                      updated_at:
                        type: string
                        example: '07-08-2024 17:11:05'
        422:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n \"error\": true,\n \"message\": \"Validation errors occurred\",\n \"errors\": {\n   \"title\": [\"The title field is required.\"],\n   \"start_date\": [\"The start date field is required.\"],\n   ...\n }\n}"
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while creating the meeting.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while creating the meeting.'
      tags:
        - 'Meeting Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The title of the meeting.'
                  example: 'Project Kickoff'
                start_date:
                  type: string
                  description: 'The start date of the meeting in the format specified in the general settings.'
                  example: 25-07-2024
                end_date:
                  type: string
                  description: 'The end date of the meeting in the format specified in the general settings.'
                  example: 25-07-2024
                start_time:
                  type: string
                  description: 'The start time of the meeting in the format HH:MM.'
                  example: '10:00'
                end_time:
                  type: string
                  description: 'The end time of the meeting in the format HH:MM.'
                  example: '11:00'
                user_ids:
                  type: array
                  description: 'nullable An array of user IDs to be assigned to the meeting.'
                  example:
                    - 1
                    - 2
                    - 3
                  items:
                    type: string
                client_ids:
                  type: array
                  description: 'nullable An array of client IDs to be assigned to the meeting.'
                  example:
                    - 4
                    - 5
                  items:
                    type: string
              required:
                - title
                - start_date
                - end_date
                - start_time
                - end_time
  '/api/meetings/{id}':
    get:
      summary: 'List or search meetings.'
      operationId: listOrSearchMeetings
      description: 'This endpoint retrieves a list of meetings based on various filters. The user must be authenticated to perform this action. The request allows filtering by status, user, client, date ranges, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter meetings by title or id.'
          example: Meeting
          required: false
          schema:
            type: string
            description: 'optional The search term to filter meetings by title or id.'
            example: Meeting
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, start_date_time, end_date_time, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, start_date_time, end_date_time, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: status
          description: 'optional The status of the meeting to filter by. Can be "ongoing", "ended", or "yet_to_start".'
          example: ongoing
          required: false
          schema:
            type: string
            description: 'optional The status of the meeting to filter by. Can be "ongoing", "ended", or "yet_to_start".'
            example: ongoing
        -
          in: query
          name: user_id
          description: 'optional The user ID to filter meetings by.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'optional The user ID to filter meetings by.'
            example: 1
        -
          in: query
          name: client_id
          description: 'optional The client ID to filter meetings by.'
          example: 5
          required: false
          schema:
            type: integer
            description: 'optional The client ID to filter meetings by.'
            example: 5
        -
          in: query
          name: start_date_from
          description: "optional The start date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The start date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: start_date_to
          description: "optional The start date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The start date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: end_date_from
          description: "optional The end date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The end date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: end_date_to
          description: "optional The end date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The end date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: limit
          description: 'optional The number of meetings per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of meetings per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Meetings retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 351
                          title: 'Project Kickoff'
                          start_date: '2024-07-01'
                          start_time: '10:00:00'
                          end_date: '2024-07-01'
                          end_time: '11:00:00'
                          users:
                            -
                              id: 7
                              first_name: Madhavan
                              last_name: Vaidya
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                          clients: []
                          status: Ongoing
                          created_at: '14-06-2024 17:50:09'
                          updated_at: '17-06-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Meetings retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 351
                            title: 'Project Kickoff'
                            start_date: '2024-07-01'
                            start_time: '10:00:00'
                            end_date: '2024-07-01'
                            end_time: '11:00:00'
                            users:
                              -
                                id: 7
                                first_name: Madhavan
                                last_name: Vaidya
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            clients: []
                            status: Ongoing
                            created_at: '14-06-2024 17:50:09'
                            updated_at: '17-06-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 351
                            title:
                              type: string
                              example: 'Project Kickoff'
                            start_date:
                              type: string
                              example: '2024-07-01'
                            start_time:
                              type: string
                              example: '10:00:00'
                            end_date:
                              type: string
                              example: '2024-07-01'
                            end_time:
                              type: string
                              example: '11:00:00'
                            users:
                              type: array
                              example:
                                -
                                  id: 7
                                  first_name: Madhavan
                                  last_name: Vaidya
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 7
                                  first_name:
                                    type: string
                                    example: Madhavan
                                  last_name:
                                    type: string
                                    example: Vaidya
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                            clients:
                              type: array
                              example: []
                            status:
                              type: string
                              example: Ongoing
                            created_at:
                              type: string
                              example: '14-06-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '17-06-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Meeting not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Meeting not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Meetings not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Meetings not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Meeting Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the meeting to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/meetings/update:
    post:
      summary: 'Update an existing meeting.'
      operationId: updateAnExistingMeeting
      description: 'This endpoint updates an existing meeting with the provided details. The user must be authenticated to perform this action. The request validates various fields, including title, dates, and times.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Meeting updated successfully.'
                  id: 119
                  data:
                    id: 119
                    title: 'From API'
                    start_date: 25-07-2024
                    start_time: '15:00:00'
                    end_date: 25-08-2024
                    end_time: '11:45:15'
                    users:
                      -
                        id: 7
                        first_name: Madhavan
                        last_name: Vaidya
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    clients:
                      -
                        id: 173
                        first_name: '666'
                        last_name: '666'
                        photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                    status: Ongoing
                    created_at: '07-08-2024 17:11:05'
                    updated_at: '07-08-2024 17:15:15'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Meeting updated successfully.'
                  id:
                    type: integer
                    example: 119
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 119
                      title:
                        type: string
                        example: 'From API'
                      start_date:
                        type: string
                        example: 25-07-2024
                      start_time:
                        type: string
                        example: '15:00:00'
                      end_date:
                        type: string
                        example: 25-08-2024
                      end_time:
                        type: string
                        example: '11:45:15'
                      users:
                        type: array
                        example:
                          -
                            id: 7
                            first_name: Madhavan
                            last_name: Vaidya
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 7
                            first_name:
                              type: string
                              example: Madhavan
                            last_name:
                              type: string
                              example: Vaidya
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      clients:
                        type: array
                        example:
                          -
                            id: 173
                            first_name: '666'
                            last_name: '666'
                            photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 173
                            first_name:
                              type: string
                              example: '666'
                            last_name:
                              type: string
                              example: '666'
                            photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                      status:
                        type: string
                        example: Ongoing
                      created_at:
                        type: string
                        example: '07-08-2024 17:11:05'
                      updated_at:
                        type: string
                        example: '07-08-2024 17:15:15'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The meeting ID is required.'
                      - 'The meeting ID does not exist in our records.'
                    start_date:
                      - 'The start date must be before or equal to the end date.'
                    start_time:
                      - 'The start time field is required.'
                    end_time:
                      - 'The end time field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The meeting ID is required.'
                          - 'The meeting ID does not exist in our records.'
                        items:
                          type: string
                      start_date:
                        type: array
                        example:
                          - 'The start date must be before or equal to the end date.'
                        items:
                          type: string
                      start_time:
                        type: array
                        example:
                          - 'The start time field is required.'
                        items:
                          type: string
                      end_time:
                        type: array
                        example:
                          - 'The end time field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the meeting.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the meeting.'
      tags:
        - 'Meeting Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the meeting to update.'
                  example: 1
                title:
                  type: string
                  description: 'The title of the meeting.'
                  example: 'Updated Meeting Title'
                start_date:
                  type: string
                  description: 'The start date of the meeting in the format specified in the general settings.'
                  example: '2024-08-01'
                end_date:
                  type: string
                  description: 'The end date of the meeting in the format specified in the general settings.'
                  example: '2024-08-31'
                start_time:
                  type: string
                  description: 'The start time of the meeting.'
                  example: '09:00'
                end_time:
                  type: string
                  description: 'The end time of the meeting.'
                  example: '10:00'
                user_ids:
                  type: array|null
                  description: 'optional Array of user IDs to be associated with the meeting.'
                  example: '[2, 3]'
                client_ids:
                  type: array|null
                  description: 'optional Array of client IDs to be associated with the meeting.'
                  example: '[5, 6]'
              required:
                - id
                - title
                - start_date
                - end_date
                - start_time
                - end_time
  '/api/meetings/destroy/{id}':
    delete:
      summary: 'Remove the specified meeting.'
      operationId: removeTheSpecifiedMeeting
      description: 'This endpoint deletes a meeting based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Meeting deleted successfully.'
                      id: 1
                      title: 'Meeting Title'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Meeting deleted successfully.'
                      id:
                        type: integer
                        example: 1
                      title:
                        type: string
                        example: 'Meeting Title'
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Meeting not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Meeting not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the meeting.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the meeting.'
      tags:
        - 'Meeting Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the meeting to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  /api/todos/store:
    post:
      summary: 'Create a new todo.'
      operationId: createANewTodo
      description: 'This endpoint creates a new todo item with the specified title, priority, and description. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Todo created successfully.'
                  id: 36
                  data:
                    id: 36
                    title: test
                    description: test
                    priority: low
                    is_completed: 0
                    created_at: '07-08-2024 16:30:09'
                    updated_at: '07-08-2024 16:30:09'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Todo created successfully.'
                  id:
                    type: integer
                    example: 36
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 36
                      title:
                        type: string
                        example: test
                      description:
                        type: string
                        example: test
                      priority:
                        type: string
                        example: low
                      is_completed:
                        type: integer
                        example: 0
                      created_at:
                        type: string
                        example: '07-08-2024 16:30:09'
                      updated_at:
                        type: string
                        example: '07-08-2024 16:30:09'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    title:
                      - 'The title field is required.'
                    priority:
                      - 'The priority must be one of the following: low, medium, high.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      priority:
                        type: array
                        example:
                          - 'The priority must be one of the following: low, medium, high.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while creating the todo.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while creating the todo.'
      tags:
        - 'Todo Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The title of the todo.'
                  example: 'Finish report'
                priority:
                  type: string
                  description: 'The priority of the todo. Must be one of "low", "medium", or "high".'
                  example: medium
                description:
                  type: string
                  description: 'optional A description of the todo.'
                  example: 'Complete the report by end of day'
              required:
                - title
                - priority
  '/api/todos/{id}':
    get:
      summary: 'List or search todos.'
      operationId: listOrSearchTodos
      description: 'This endpoint retrieves a list of todos based on various filters. The user must be authenticated to perform this action. The request allows filtering by search term, status, and pagination parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter todos by id, title, or description.'
          example: Test
          required: false
          schema:
            type: string
            description: 'optional The search term to filter todos by id, title, or description.'
            example: Test
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "is_completed". All fields are sortable.'
          example: created_at
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "is_completed". All fields are sortable.'
            example: created_at
        -
          in: query
          name: order
          description: 'optional The sort order, either "asc" or "desc". Defaults to "desc".'
          example: asc
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "asc" or "desc". Defaults to "desc".'
            example: asc
        -
          in: query
          name: status
          description: 'optional The status to filter todos by.'
          example: completed
          required: false
          schema:
            type: string
            description: 'optional The status to filter todos by.'
            example: completed
        -
          in: query
          name: limit
          description: 'optional The number of todos per page for pagination. Defaults to 10.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of todos per page for pagination. Defaults to 10.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results. Defaults to 0.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results. Defaults to 0.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Todos retrieved successfully.'
                      total: 1
                      data:
                        -
                          id: 35
                          title: test
                          description: test
                          priority: low
                          is_completed: 0
                          created_at: '07-08-2024 15:28:22'
                          updated_at: '07-08-2024 15:28:22'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Todos retrieved successfully.'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 35
                            title: test
                            description: test
                            priority: low
                            is_completed: 0
                            created_at: '07-08-2024 15:28:22'
                            updated_at: '07-08-2024 15:28:22'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 35
                            title:
                              type: string
                              example: test
                            description:
                              type: string
                              example: test
                            priority:
                              type: string
                              example: low
                            is_completed:
                              type: integer
                              example: 0
                            created_at:
                              type: string
                              example: '07-08-2024 15:28:22'
                            updated_at:
                              type: string
                              example: '07-08-2024 15:28:22'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Todo not found.'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Todo not found.'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Todos not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Todos not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while retrieving the todos.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while retrieving the todos.'
      tags:
        - 'Todo Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the todo to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/todos/update:
    post:
      summary: 'Update an existing todo.'
      operationId: updateAnExistingTodo
      description: 'This endpoint updates an existing todo item with the specified title, priority, and description. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n\"error\": false,\n\"message\": \"Todo updated successfully.\",\n\"id\": \"36\",\n\"data\": {\n  \"id\": 36,\n  \"is_completed\": 0,\n  \"title\": \"test\",\n  \"priority\": \"low\",\n  \"description\": \"test\",\n  \"created_at\": \"07-08-2024 16:30:09\",\n  \"updated_at\": \"07-08-2024 16:30:09\"\n}\n}\n\n}"
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The id field is required.'
                    title:
                      - 'The title field is required.'
                    priority:
                      - 'The priority must be one of the following: low, medium, high.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The id field is required.'
                        items:
                          type: string
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      priority:
                        type: array
                        example:
                          - 'The priority must be one of the following: low, medium, high.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the todo.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the todo.'
      tags:
        - 'Todo Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the todo to be updated.'
                  example: 1
                title:
                  type: string
                  description: 'The new title of the todo.'
                  example: 'Finish report'
                priority:
                  type: string
                  description: 'The new priority of the todo. Must be one of "low", "medium", or "high".'
                  example: medium
                description:
                  type: string
                  description: 'optional A new description for the todo.'
                  example: 'Complete the report by end of day'
              required:
                - id
                - title
                - priority
  '/api/todos/{id}/status':
    patch:
      summary: 'Update the completion status of a todo.'
      operationId: updateTheCompletionStatusOfATodo
      description: 'This endpoint updates the completion status of a specified todo item. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Status updated successfully.'
                  id: '60'
                  activity_message: 'Madhavan Vaidya marked todo iouyhgyu as Completed'
                  data:
                    id: 60
                    title: iouyhgyu
                    description: ty8uifyu
                    priority: medium
                    is_completed: 1
                    created_at: '10-08-2024 10:28:59'
                    updated_at: '12-08-2024 18:08:14'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Status updated successfully.'
                  id:
                    type: string
                    example: '60'
                  activity_message:
                    type: string
                    example: 'Madhavan Vaidya marked todo iouyhgyu as Completed'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 60
                      title:
                        type: string
                        example: iouyhgyu
                      description:
                        type: string
                        example: ty8uifyu
                      priority:
                        type: string
                        example: medium
                      is_completed:
                        type: integer
                        example: 1
                      created_at:
                        type: string
                        example: '10-08-2024 10:28:59'
                      updated_at:
                        type: string
                        example: '12-08-2024 18:08:14'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The id field is required.'
                    status:
                      - 'The status field is required.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The id field is required.'
                        items:
                          type: string
                      status:
                        type: array
                        example:
                          - 'The status field is required.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Status couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Status couldn't be updated."
      tags:
        - 'Todo Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: boolean
                  description: 'The new completion status of the todo.'
                  example: true
              required:
                - status
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the todo whose status is to be updated.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/todos/{id}/priority':
    patch:
      summary: 'Update the priority of a todo.'
      operationId: updateThePriorityOfATodo
      description: "This endpoint updates the priority of a specified todo item. The user must be authenticated to perform this action. The priority must be one of 'low', 'medium', or 'high'."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Priority updated successfully.'
                  id: '60'
                  activity_message: 'Madhavan Vaidya updated the priority of todo iouyhgyu from High to Low'
                  data:
                    id: 60
                    title: iouyhgyu
                    description: ty8uifyu
                    priority: low
                    is_completed: 1
                    created_at: '10-08-2024 10:28:59'
                    updated_at: '12-08-2024 18:11:13'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Priority updated successfully.'
                  id:
                    type: string
                    example: '60'
                  activity_message:
                    type: string
                    example: 'Madhavan Vaidya updated the priority of todo iouyhgyu from High to Low'
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 60
                      title:
                        type: string
                        example: iouyhgyu
                      description:
                        type: string
                        example: ty8uifyu
                      priority:
                        type: string
                        example: low
                      is_completed:
                        type: integer
                        example: 1
                      created_at:
                        type: string
                        example: '10-08-2024 10:28:59'
                      updated_at:
                        type: string
                        example: '12-08-2024 18:11:13'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The id field is required.'
                    priority:
                      - 'The priority field is required.'
                      - 'The selected priority is invalid.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The id field is required.'
                        items:
                          type: string
                      priority:
                        type: array
                        example:
                          - 'The priority field is required.'
                          - 'The selected priority is invalid.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: "Priority couldn't be updated."
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: "Priority couldn't be updated."
      tags:
        - 'Todo Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                priority:
                  type: string
                  description: "The new priority of the todo. Must be one of 'low', 'medium', or 'high'."
                  example: medium
              required:
                - priority
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the todo whose priority is to be updated.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/todos/destroy/{id}':
    delete:
      summary: 'Remove the specified todo.'
      operationId: removeTheSpecifiedTodo
      description: 'This endpoint deletes a todo item based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"error\": false,\n  \"message\": \"Todo deleted successfully.\",\n  \"id\": 1,\n  \"title\": \"Todo Title\"\n  \"data\": []\n}"
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the todo.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the todo.'
      tags:
        - 'Todo Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the todo to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  /api/notes/store:
    post:
      summary: 'Create a new note.'
      operationId: createANewNote
      description: 'This endpoint creates a new note item with the specified title, color, and description. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Note created successfully.'
                  id: 44
                  data:
                    id: 44
                    title: 'Test Note'
                    color: info
                    description: test
                    workspace_id: 6
                    creator_id: u_7
                    created_at: '07-08-2024 16:24:57'
                    updated_at: '07-08-2024 16:24:57'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Note created successfully.'
                  id:
                    type: integer
                    example: 44
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 44
                      title:
                        type: string
                        example: 'Test Note'
                      color:
                        type: string
                        example: info
                      description:
                        type: string
                        example: test
                      workspace_id:
                        type: integer
                        example: 6
                      creator_id:
                        type: string
                        example: u_7
                      created_at:
                        type: string
                        example: '07-08-2024 16:24:57'
                      updated_at:
                        type: string
                        example: '07-08-2024 16:24:57'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    title:
                      - 'The title field is required.'
                    color:
                      - 'The color must be one of the following: info, warning, danger.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      color:
                        type: array
                        example:
                          - 'The color must be one of the following: info, warning, danger.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while creating the note.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while creating the note.'
      tags:
        - 'Note Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: 'The title of the note.'
                  example: 'Meeting notes'
                color:
                  type: string
                  description: 'The color associated with the note. Must be one of "info", "warning", or "danger".'
                  example: warning
                description:
                  type: string
                  description: 'optional A description of the note.'
                  example: 'Notes from the client meeting'
              required:
                - title
                - color
  '/api/notes/{id}':
    get:
      summary: 'List or search notes.'
      operationId: listOrSearchNotes
      description: 'This endpoint retrieves a list of notes based on various filters. The user must be authenticated to perform this action. The request allows filtering by search term and pagination parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter notes by id, title, or description.'
          example: Test
          required: false
          schema:
            type: string
            description: 'optional The search term to filter notes by id, title, or description.'
            example: Test
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "is_completed". All fields are sortable.'
          example: created_at
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "is_completed". All fields are sortable.'
            example: created_at
        -
          in: query
          name: order
          description: 'optional The sort order, either "asc" or "desc". Defaults to "desc".'
          example: asc
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "asc" or "desc". Defaults to "desc".'
            example: asc
        -
          in: query
          name: limit
          description: 'optional The number of notes per page for pagination. Defaults to 10.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of notes per page for pagination. Defaults to 10.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results. Defaults to 0.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results. Defaults to 0.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Notes retrieved successfully.'
                      total: 1
                      data:
                        -
                          id: 43
                          title: upper
                          color: warning
                          description: jhdcsd
                          workspace_id: 6
                          creator_id: u_7
                          created_at: '07-08-2024 16:12:13'
                          updated_at: '07-08-2024 16:12:13'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Notes retrieved successfully.'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 43
                            title: upper
                            color: warning
                            description: jhdcsd
                            workspace_id: 6
                            creator_id: u_7
                            created_at: '07-08-2024 16:12:13'
                            updated_at: '07-08-2024 16:12:13'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 43
                            title:
                              type: string
                              example: upper
                            color:
                              type: string
                              example: warning
                            description:
                              type: string
                              example: jhdcsd
                            workspace_id:
                              type: integer
                              example: 6
                            creator_id:
                              type: string
                              example: u_7
                            created_at:
                              type: string
                              example: '07-08-2024 16:12:13'
                            updated_at:
                              type: string
                              example: '07-08-2024 16:12:13'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Note not found.'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Note not found.'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Notes not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Notes not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while retrieving the notes.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while retrieving the notes.'
      tags:
        - 'Note Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the note to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/notes/update:
    post:
      summary: 'Update an existing note.'
      operationId: updateAnExistingNote
      description: 'This endpoint updates an existing note item with the specified title, color, and description. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Note updated successfully.'
                  id: 44
                  data:
                    id: 44
                    title: 'Test Note'
                    color: info
                    description: test
                    workspace_id: 6
                    creator_id: u_7
                    created_at: '07-08-2024 16:24:57'
                    updated_at: '07-08-2024 16:24:57'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Note updated successfully.'
                  id:
                    type: integer
                    example: 44
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 44
                      title:
                        type: string
                        example: 'Test Note'
                      color:
                        type: string
                        example: info
                      description:
                        type: string
                        example: test
                      workspace_id:
                        type: integer
                        example: 6
                      creator_id:
                        type: string
                        example: u_7
                      created_at:
                        type: string
                        example: '07-08-2024 16:24:57'
                      updated_at:
                        type: string
                        example: '07-08-2024 16:24:57'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The id field is required.'
                    title:
                      - 'The title field is required.'
                    color:
                      - 'The color must be one of the following: info, warning, danger.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The id field is required.'
                        items:
                          type: string
                      title:
                        type: array
                        example:
                          - 'The title field is required.'
                        items:
                          type: string
                      color:
                        type: array
                        example:
                          - 'The color must be one of the following: info, warning, danger.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the note.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the note.'
      tags:
        - 'Note Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the note to be updated.'
                  example: 1
                title:
                  type: string
                  description: 'The new title of the note.'
                  example: 'Meeting notes'
                color:
                  type: string
                  description: 'The new color of the note. Must be one of "info", "warning", or "danger".'
                  example: warning
                description:
                  type: string
                  description: 'optional A new description for the note.'
                  example: 'Notes from the client meeting'
              required:
                - id
                - title
                - color
  '/api/notes/destroy/{id}':
    delete:
      summary: 'Remove the specified note.'
      operationId: removeTheSpecifiedNote
      description: 'This endpoint deletes a note item based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Note deleted successfully.'
                      id: 1
                      title: 'Note Title'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Note deleted successfully.'
                      id:
                        type: integer
                        example: 1
                      title:
                        type: string
                        example: 'Note Title'
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Note not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Note not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the note.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the note.'
      tags:
        - 'Note Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the note to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  /api/leave-requests/store:
    post:
      summary: 'Create a new leave request.'
      operationId: createANewLeaveRequest
      description: 'This endpoint creates a new leave request with the provided details. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Leave request created successfully.'
                  id: 187
                  type: leave_request
                  data:
                    id: 187
                    user_name: 'Madhavan Vaidya'
                    user_photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    action_by: null
                    action_by_id: null
                    from_date: 'Wed, 07-08-2024'
                    to_date: 'Wed, 07-08-2024'
                    type: Full
                    duration: '1 day'
                    reason: Test
                    status: Pending
                    visible_to: null
                    created_at: '07-08-2024 18:31:28'
                    updated_at: '07-08-2024 18:31:28'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Leave request created successfully.'
                  id:
                    type: integer
                    example: 187
                  type:
                    type: string
                    example: leave_request
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 187
                      user_name:
                        type: string
                        example: 'Madhavan Vaidya'
                      user_photo:
                        type: string
                        example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      action_by:
                        type: string
                        example: null
                      action_by_id:
                        type: string
                        example: null
                      from_date:
                        type: string
                        example: 'Wed, 07-08-2024'
                      to_date:
                        type: string
                        example: 'Wed, 07-08-2024'
                      type:
                        type: string
                        example: Full
                      duration:
                        type: string
                        example: '1 day'
                      reason:
                        type: string
                        example: Test
                      status:
                        type: string
                        example: Pending
                      visible_to:
                        type: string
                        example: null
                      created_at:
                        type: string
                        example: '07-08-2024 18:31:28'
                      updated_at:
                        type: string
                        example: '07-08-2024 18:31:28'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    reason:
                      - 'The reason field is required.'
                    from_date:
                      - 'The from date field is required.'
                    to_date:
                      - 'The to date field is required.'
                    from_time:
                      - 'The from time field is required when partial leave is checked.'
                    to_time:
                      - 'The to time field is required when partial leave is checked.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      reason:
                        type: array
                        example:
                          - 'The reason field is required.'
                        items:
                          type: string
                      from_date:
                        type: array
                        example:
                          - 'The from date field is required.'
                        items:
                          type: string
                      to_date:
                        type: array
                        example:
                          - 'The to date field is required.'
                        items:
                          type: string
                      from_time:
                        type: array
                        example:
                          - 'The from time field is required when partial leave is checked.'
                        items:
                          type: string
                      to_time:
                        type: array
                        example:
                          - 'The to time field is required when partial leave is checked.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while creating the leave request.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while creating the leave request.'
      tags:
        - 'Leave Request Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
                  description: 'The reason for the leave.'
                  example: 'Family function'
                from_date:
                  type: date
                  description: 'The start date of the leave in the format specified in the general settings.'
                  example: '2024-08-05'
                to_date:
                  type: date
                  description: 'The end date of the leave in the format specified in the general settings.'
                  example: '2024-08-01'
                from_time:
                  type: time
                  description: 'required_if:partialLeave,on The start time of the leave in HH:MM format.'
                  example: '09:00'
                to_time:
                  type: time
                  description: 'required_if:partialLeave,on The end time of the leave in HH:MM format.'
                  example: '17:00'
                status:
                  type: string
                  description: "nullable The status of the leave request. Can be 'pending', 'approved', or 'rejected'."
                  example: pending
                leaveVisibleToAll:
                  type: string
                  description: "optional Set to 'on' if the leave should be visible to all users in the workspace."
                  example: 'on'
                visible_to_ids:
                  type: array
                  description: 'The IDs of users who can see the leave if it is not visible to all.'
                  example:
                    - 1
                    - 2
                    - 3
                  items:
                    type: string
                user_id:
                  type: integer
                  description: 'The ID of the user requesting the leave. Only admins or leave editors can specify this.'
                  example: 4
                partialLeave:
                  type: string
                  description: "optional Set to 'on' if the leave is partial (specific times within a day)."
                  example: 'on'
                comment:
                  type: string
                  description: 'optional An optional comment that can only be set by admin or leave editor.'
                  example: 'Approved due to exceptional circumstances'
              required:
                - reason
                - from_date
                - to_date
  '/api/leave-requests/{id}':
    get:
      summary: 'List or search leave requests.'
      operationId: listOrSearchLeaveRequests
      description: 'This endpoint retrieves a list of leave requests based on various filters. The user must be authenticated to perform this action. The request allows filtering by status, user, action_by, date ranges, type, and search term.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter leave requests by reason or id.'
          example: Vacation
          required: false
          schema:
            type: string
            description: 'optional The search term to filter leave requests by reason or id.'
            example: Vacation
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, from_date, to_date, type, reason, status, action_by_id, created_at, and updated_at.'
          example: id
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, from_date, to_date, type, reason, status, action_by_id, created_at, and updated_at.'
            example: id
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: status
          description: 'optional The status of the leave request to filter by. Can be "pending", "approved", "rejected", etc.'
          example: pending
          required: false
          schema:
            type: string
            description: 'optional The status of the leave request to filter by. Can be "pending", "approved", "rejected", etc.'
            example: pending
        -
          in: query
          name: user_id
          description: 'optional The user ID to filter leave requests by.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'optional The user ID to filter leave requests by.'
            example: 1
        -
          in: query
          name: action_by_id
          description: 'optional The ID of the user who acted on the request to filter by.'
          example: 2
          required: false
          schema:
            type: integer
            description: 'optional The ID of the user who acted on the request to filter by.'
            example: 2
        -
          in: query
          name: start_date_from
          description: "optional The start date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The start date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: start_date_to
          description: "optional The start date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The start date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: end_date_from
          description: "optional The end date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The end date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: end_date_to
          description: "optional The end date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The end date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: type
          description: 'optional The type of leave request. Can be "full" or "partial".'
          example: full
          required: false
          schema:
            type: string
            description: 'optional The type of leave request. Can be "full" or "partial".'
            example: full
        -
          in: query
          name: limit
          description: 'optional The number of leave requests per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of leave requests per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Leave requests retrieved successfully'
                      total: 25
                      data:
                        -
                          id: 175
                          user_name: 'Admin Test'
                          user_photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          action_by: null
                          from_date: 'Mon, 29-07-2024'
                          to_date: 'Mon, 29-07-2024'
                          type: Full
                          duration: '1 day'
                          reason: dsdsdsd
                          status: Pending
                          visible_to:
                            -
                              id: 183
                              first_name: Girish
                              last_name: Thacker
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          created_at: '29-07-2024 10:02:45'
                          updated_at: '29-07-2024 10:02:45'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Leave requests retrieved successfully'
                      total:
                        type: integer
                        example: 25
                      data:
                        type: array
                        example:
                          -
                            id: 175
                            user_name: 'Admin Test'
                            user_photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            action_by: null
                            from_date: 'Mon, 29-07-2024'
                            to_date: 'Mon, 29-07-2024'
                            type: Full
                            duration: '1 day'
                            reason: dsdsdsd
                            status: Pending
                            visible_to:
                              -
                                id: 183
                                first_name: Girish
                                last_name: Thacker
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            created_at: '29-07-2024 10:02:45'
                            updated_at: '29-07-2024 10:02:45'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 175
                            user_name:
                              type: string
                              example: 'Admin Test'
                            user_photo:
                              type: string
                              example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            action_by:
                              type: string
                              example: null
                            from_date:
                              type: string
                              example: 'Mon, 29-07-2024'
                            to_date:
                              type: string
                              example: 'Mon, 29-07-2024'
                            type:
                              type: string
                              example: Full
                            duration:
                              type: string
                              example: '1 day'
                            reason:
                              type: string
                              example: dsdsdsd
                            status:
                              type: string
                              example: Pending
                            visible_to:
                              type: array
                              example:
                                -
                                  id: 183
                                  first_name: Girish
                                  last_name: Thacker
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 183
                                  first_name:
                                    type: string
                                    example: Girish
                                  last_name:
                                    type: string
                                    example: Thacker
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            created_at:
                              type: string
                              example: '29-07-2024 10:02:45'
                            updated_at:
                              type: string
                              example: '29-07-2024 10:02:45'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Leave request not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Leave request not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Leave requests not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Leave requests not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Leave Request Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the leave request to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  /api/leave-requests/update:
    post:
      summary: 'Update an existing leave request.'
      operationId: updateAnExistingLeaveRequest
      description: 'This endpoint updates an existing leave request with the provided details. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  message: 'Leave request updated successfully.'
                  id: 187
                  type: leave_request
                  data:
                    id: 187
                    user_name: 'Madhavan Vaidya'
                    user_photo: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                    action_by: null
                    action_by_id: null
                    from_date: 'Wed, 07-08-2024'
                    to_date: 'Wed, 07-08-2024'
                    type: Full
                    duration: '1 day'
                    reason: Test
                    status: Pending
                    visible_to: null
                    created_at: '07-08-2024 18:31:28'
                    updated_at: '07-08-2024 18:31:28'
                properties:
                  error:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Leave request updated successfully.'
                  id:
                    type: integer
                    example: 187
                  type:
                    type: string
                    example: leave_request
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 187
                      user_name:
                        type: string
                        example: 'Madhavan Vaidya'
                      user_photo:
                        type: string
                        example: 'https://test-taskify.infinitietech.com/storage/photos/yxNYBlFLALdLomrL0JzUY2USPLILL9Ocr16j4n2o.png'
                      action_by:
                        type: string
                        example: null
                      action_by_id:
                        type: string
                        example: null
                      from_date:
                        type: string
                        example: 'Wed, 07-08-2024'
                      to_date:
                        type: string
                        example: 'Wed, 07-08-2024'
                      type:
                        type: string
                        example: Full
                      duration:
                        type: string
                        example: '1 day'
                      reason:
                        type: string
                        example: Test
                      status:
                        type: string
                        example: Pending
                      visible_to:
                        type: string
                        example: null
                      created_at:
                        type: string
                        example: '07-08-2024 18:31:28'
                      updated_at:
                        type: string
                        example: '07-08-2024 18:31:28'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Validation errors occurred'
                  errors:
                    id:
                      - 'The id field is required.'
                      - 'The selected id is invalid.'
                    reason:
                      - 'The reason field is required.'
                    from_date:
                      - 'The from date field is required.'
                    to_date:
                      - 'The to date field is required.'
                    from_time:
                      - 'The from time field is required when partial leave is checked.'
                    to_time:
                      - 'The to time field is required when partial leave is checked.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Validation errors occurred'
                  errors:
                    type: object
                    properties:
                      id:
                        type: array
                        example:
                          - 'The id field is required.'
                          - 'The selected id is invalid.'
                        items:
                          type: string
                      reason:
                        type: array
                        example:
                          - 'The reason field is required.'
                        items:
                          type: string
                      from_date:
                        type: array
                        example:
                          - 'The from date field is required.'
                        items:
                          type: string
                      to_date:
                        type: array
                        example:
                          - 'The to date field is required.'
                        items:
                          type: string
                      from_time:
                        type: array
                        example:
                          - 'The from time field is required when partial leave is checked.'
                        items:
                          type: string
                      to_time:
                        type: array
                        example:
                          - 'The to time field is required when partial leave is checked.'
                        items:
                          type: string
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while updating the leave request.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while updating the leave request.'
      tags:
        - 'Leave Request Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: 'The ID of the leave request to be updated.'
                  example: 1
                reason:
                  type: string
                  description: 'The reason for the leave.'
                  example: 'Family function'
                from_date:
                  type: date
                  description: 'The start date of the leave in the format specified in the general settings.'
                  example: '2024-08-05'
                to_date:
                  type: date
                  description: 'The end date of the leave in the format specified in the general settings.'
                  example: '2024-08-01'
                from_time:
                  type: time
                  description: 'required_if:partialLeave,on The start time of the leave in HH:MM format.'
                  example: '09:00'
                to_time:
                  type: time
                  description: 'required_if:partialLeave,on The end time of the leave in HH:MM format.'
                  example: '17:00'
                status:
                  type: string
                  description: "nullable The status of the leave request. Can be 'pending', 'approved', or 'rejected'."
                  example: pending
                leaveVisibleToAll:
                  type: string
                  description: "optional Set to 'on' if the leave should be visible to all users in the workspace."
                  example: 'on'
                visible_to_ids:
                  type: array
                  description: 'nullable The IDs of users who can see the leave if it is not visible to all.'
                  example:
                    - 1
                    - 2
                    - 3
                  items:
                    type: string
                partialLeave:
                  type: string
                  description: "optional Set to 'on' if the leave is partial (specific times within a day)."
                  example: 'on'
                comment:
                  type: string
                  description: 'optional An optional comment that can only be set by admin or leave editor.'
                  example: 'Approved due to exceptional circumstances'
              required:
                - id
                - reason
                - from_date
                - to_date
  '/api/leave-requests/destroy/{id}':
    delete:
      summary: 'Remove the specified leave request.'
      operationId: removeTheSpecifiedLeaveRequest
      description: 'This endpoint deletes a leave request item based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Leave request deleted successfully.'
                      id: 1
                      type: leave_request
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Leave request deleted successfully.'
                      id:
                        type: integer
                        example: 1
                      type:
                        type: string
                        example: leave_request
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Leave request not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Leave request not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the leave request.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the leave request.'
      tags:
        - 'Leave Request Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the leave request to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/notifications/{id}':
    get:
      summary: 'List or search notifications.'
      operationId: listOrSearchNotifications
      description: 'This endpoint retrieves a list of notifications based on various filters. The user must be authenticated to perform this action. The request allows filtering by status, type, user, client, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter notifications by title, message and id.'
          example: Alert
          required: false
          schema:
            type: string
            description: 'optional The search term to filter notifications by title, message and id.'
            example: Alert
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, message, type, status, created_at, and updated_at.'
          example: title
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, title, message, type, status, created_at, and updated_at.'
            example: title
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: status
          description: 'optional The status of the notification to filter by. Can be "read" or "unread".'
          example: unread
          required: false
          schema:
            type: string
            description: 'optional The status of the notification to filter by. Can be "read" or "unread".'
            example: unread
        -
          in: query
          name: type
          description: 'optional The type of notifications to filter by.'
          example: project
          required: false
          schema:
            type: string
            description: 'optional The type of notifications to filter by.'
            example: project
        -
          in: query
          name: user_id
          description: 'optional The user ID to filter notifications by.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'optional The user ID to filter notifications by.'
            example: 1
        -
          in: query
          name: client_id
          description: 'optional The client ID to filter notifications by.'
          example: 5
          required: false
          schema:
            type: integer
            description: 'optional The client ID to filter notifications by.'
            example: 5
        -
          in: query
          name: notification_type
          description: 'optional The notification type to filter by. Can be "system" or "push".'
          example: system
          required: false
          schema:
            type: string
            description: 'optional The notification type to filter by. Can be "system" or "push".'
            example: system
        -
          in: query
          name: limit
          description: 'optional The number of notifications per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of notifications per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Notifications retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 116
                          title: 'Task Status Updated'
                          users:
                            -
                              id: 183
                              first_name: Girish
                              last_name: Thacker
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          clients:
                            -
                              id: 102
                              first_name: Test
                              last_name: Client
                              photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                          type: Task
                          type_id: 268
                          message: 'Madhavan Vaidya has updated the status of task sdff, ID:#268, from Default to Test From Pro.'
                          status: Unread
                          read_at: null
                          created_at: '23-07-2024 17:50:09'
                          updated_at: '23-07-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Notifications retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 116
                            title: 'Task Status Updated'
                            users:
                              -
                                id: 183
                                first_name: Girish
                                last_name: Thacker
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            clients:
                              -
                                id: 102
                                first_name: Test
                                last_name: Client
                                photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            type: Task
                            type_id: 268
                            message: 'Madhavan Vaidya has updated the status of task sdff, ID:#268, from Default to Test From Pro.'
                            status: Unread
                            read_at: null
                            created_at: '23-07-2024 17:50:09'
                            updated_at: '23-07-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 116
                            title:
                              type: string
                              example: 'Task Status Updated'
                            users:
                              type: array
                              example:
                                -
                                  id: 183
                                  first_name: Girish
                                  last_name: Thacker
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 183
                                  first_name:
                                    type: string
                                    example: Girish
                                  last_name:
                                    type: string
                                    example: Thacker
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            clients:
                              type: array
                              example:
                                -
                                  id: 102
                                  first_name: Test
                                  last_name: Client
                                  photo: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: integer
                                    example: 102
                                  first_name:
                                    type: string
                                    example: Test
                                  last_name:
                                    type: string
                                    example: Client
                                  photo:
                                    type: string
                                    example: 'https://test-taskify.infinitietech.com/storage/photos/no-image.jpg'
                            type:
                              type: string
                              example: Task
                            type_id:
                              type: integer
                              example: 268
                            message:
                              type: string
                              example: 'Madhavan Vaidya has updated the status of task sdff, ID:#268, from Default to Test From Pro.'
                            status:
                              type: string
                              example: Unread
                            read_at:
                              type: string
                              example: null
                            created_at:
                              type: string
                              example: '23-07-2024 17:50:09'
                            updated_at:
                              type: string
                              example: '23-07-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Notification not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Notification not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Notifications not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Notifications not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Notification Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the meeting to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  '/api/notifications/destroy/{id}':
    delete:
      summary: 'Remove the specified notification.'
      operationId: removeTheSpecifiedNotification
      description: 'This endpoint deletes a notification based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Notification deleted successfully.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Notification deleted successfully.'
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Notification not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Notification not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the notification.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the notification.'
      tags:
        - 'Notification Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the notification to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/notifications/mark-as-read/{id}':
    patch:
      summary: 'Mark notification(s) as read.'
      operationId: markNotificationsAsRead
      description: "This endpoint marks a specific notification as read if a notification ID is provided.\nIf no ID is provided, it will mark all unread notifications as read for the authenticated user.\nThe user must be authenticated to perform this action."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Notification marked as read successfully.'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Notification marked as read successfully.'
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'All notifications marked as read successfully.'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'All notifications marked as read successfully.'
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Notification not found.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Notification not found.'
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Failed to mark notifications as read.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Failed to mark notifications as read.'
      tags:
        - 'Notification Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the notification to mark as read.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  '/api/activity-log/{id}':
    get:
      summary: 'List or search activity logs.'
      operationId: listOrSearchActivityLogs
      description: 'This endpoint retrieves a list of activity logs based on various filters. The user must be authenticated to perform this action. The request allows filtering by date ranges, user, client, activity type, and other parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter activity logs.'
          example: update
          required: false
          schema:
            type: string
            description: 'optional The search term to filter activity logs.'
            example: update
        -
          in: query
          name: sort
          description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, created_at, and updated_at.'
          example: created_at
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. Defaults to "id". Sortable fields include: id, created_at, and updated_at.'
            example: created_at
        -
          in: query
          name: order
          description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
          example: ASC
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "ASC" or "DESC". Defaults to "DESC".'
            example: ASC
        -
          in: query
          name: date_from
          description: "optional The start date range's start in YYYY-MM-DD format."
          example: '2024-01-01'
          required: false
          schema:
            type: string
            description: "optional The start date range's start in YYYY-MM-DD format."
            example: '2024-01-01'
        -
          in: query
          name: date_to
          description: "optional The end date range's end in YYYY-MM-DD format."
          example: '2024-12-31'
          required: false
          schema:
            type: string
            description: "optional The end date range's end in YYYY-MM-DD format."
            example: '2024-12-31'
        -
          in: query
          name: user_id
          description: 'optional The user ID to filter activity logs by.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'optional The user ID to filter activity logs by.'
            example: 1
        -
          in: query
          name: client_id
          description: 'optional The client ID to filter activity logs by.'
          example: 5
          required: false
          schema:
            type: integer
            description: 'optional The client ID to filter activity logs by.'
            example: 5
        -
          in: query
          name: activity
          description: 'optional The activity type to filter by.'
          example: update
          required: false
          schema:
            type: string
            description: 'optional The activity type to filter by.'
            example: update
        -
          in: query
          name: type
          description: 'optional The type of activity to filter by.'
          example: task
          required: false
          schema:
            type: string
            description: 'optional The type of activity to filter by.'
            example: task
        -
          in: query
          name: type_id
          description: 'optional The type ID to filter activity logs by.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The type ID to filter activity logs by.'
            example: 10
        -
          in: query
          name: limit
          description: 'optional The number of logs per page for pagination.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of logs per page for pagination.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Activity logs retrieved successfully'
                      total: 1
                      data:
                        -
                          id: 974
                          actor_id: 183
                          actor_name: 'Girish Thacker'
                          actor_type: User
                          type_id: 31
                          parent_type_id: ''
                          type: Payslip
                          parent_type: ''
                          type_title: CTR-31
                          parent_type_title: ''
                          activity: Created
                          message: 'Girish Thacker created payslip PSL-31'
                          created_at: '06-08-2024 18:10:41'
                          updated_at: '06-08-2024 18:10:41'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Activity logs retrieved successfully'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 974
                            actor_id: 183
                            actor_name: 'Girish Thacker'
                            actor_type: User
                            type_id: 31
                            parent_type_id: ''
                            type: Payslip
                            parent_type: ''
                            type_title: CTR-31
                            parent_type_title: ''
                            activity: Created
                            message: 'Girish Thacker created payslip PSL-31'
                            created_at: '06-08-2024 18:10:41'
                            updated_at: '06-08-2024 18:10:41'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 974
                            actor_id:
                              type: integer
                              example: 183
                            actor_name:
                              type: string
                              example: 'Girish Thacker'
                            actor_type:
                              type: string
                              example: User
                            type_id:
                              type: integer
                              example: 31
                            parent_type_id:
                              type: string
                              example: ''
                            type:
                              type: string
                              example: Payslip
                            parent_type:
                              type: string
                              example: ''
                            type_title:
                              type: string
                              example: CTR-31
                            parent_type_title:
                              type: string
                              example: ''
                            activity:
                              type: string
                              example: Created
                            message:
                              type: string
                              example: 'Girish Thacker created payslip PSL-31'
                            created_at:
                              type: string
                              example: '06-08-2024 18:10:41'
                            updated_at:
                              type: string
                              example: '06-08-2024 18:10:41'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Activity logs not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Activity logs not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
      tags:
        - 'Activity Log Management'
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the activity log to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  '/api/activity-log/destroy/{id}':
    delete:
      summary: 'Remove the specified activity log.'
      operationId: removeTheSpecifiedActivityLog
      description: 'This endpoint deletes a activity log based on the provided ID. The user must be authenticated to perform this action.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Record deleted successfully.'
                      title: null
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Record deleted successfully.'
                      title:
                        type: string
                        example: null
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Record not found.'
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Record not found.'
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while deleting the activity log.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while deleting the activity log.'
      tags:
        - 'Activity Log Management'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the activity log to be deleted.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/roles/{id}':
    get:
      summary: 'List or search roles.'
      operationId: listOrSearchRoles
      description: 'This endpoint retrieves a list of roles based on various filters. The request allows filtering by search term and pagination parameters.'
      parameters:
        -
          in: query
          name: search
          description: 'optional The search term to filter roles by id, name or guard_name.'
          example: Admin
          required: false
          schema:
            type: string
            description: 'optional The search term to filter roles by id, name or guard_name.'
            example: Admin
        -
          in: query
          name: sort
          description: 'optional The field to sort by. all fields are sortable. Defaults to "created_at".'
          example: name
          required: false
          schema:
            type: string
            description: 'optional The field to sort by. all fields are sortable. Defaults to "created_at".'
            example: name
        -
          in: query
          name: order
          description: 'optional The sort order, either "asc" or "desc". Defaults to "desc".'
          example: asc
          required: false
          schema:
            type: string
            description: 'optional The sort order, either "asc" or "desc". Defaults to "desc".'
            example: asc
        -
          in: query
          name: limit
          description: 'optional The number of roles per page for pagination. Defaults to 10.'
          example: 10
          required: false
          schema:
            type: integer
            description: 'optional The number of roles per page for pagination. Defaults to 10.'
            example: 10
        -
          in: query
          name: offset
          description: 'optional The offset for pagination, indicating the starting point of results. Defaults to 0.'
          example: 0
          required: false
          schema:
            type: integer
            description: 'optional The offset for pagination, indicating the starting point of results. Defaults to 0.'
            example: 0
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Roles retrieved successfully.'
                      total: 1
                      data:
                        -
                          id: 1
                          name: Admin
                          guard_name: web
                          created_at: '10-10-2023 17:50:09'
                          updated_at: '23-07-2024 19:08:16'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Roles retrieved successfully.'
                      total:
                        type: integer
                        example: 1
                      data:
                        type: array
                        example:
                          -
                            id: 1
                            name: Admin
                            guard_name: web
                            created_at: '10-10-2023 17:50:09'
                            updated_at: '23-07-2024 19:08:16'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: Admin
                            guard_name:
                              type: string
                              example: web
                            created_at:
                              type: string
                              example: '10-10-2023 17:50:09'
                            updated_at:
                              type: string
                              example: '23-07-2024 19:08:16'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Role not found.'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Role not found.'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Roles not found'
                      total: 0
                      data: []
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Roles not found'
                      total:
                        type: integer
                        example: 0
                      data:
                        type: array
                        example: []
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while retrieving the roles.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while retrieving the roles.'
      tags:
        - 'Role/Permission Management'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'Optional parameter. optional The ID of the role to retrieve.'
        required: true
        schema:
          type: integer
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: 1
  '/api/permissions/{permission}':
    get:
      summary: 'Check user permissions.'
      operationId: checkUserPermissions
      description: "This endpoint checks the module-wise permissions assigned to the authenticated user.\nIf a specific permission is provided in the URL, it checks only that permission for the authenticated user.\nOtherwise, it returns all permissions for the authenticated user."
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n    \"error\": false,\n    \"message\": \"Permissions check completed.\",\n    \"data\": {\n        \"permissions\": {\n            \"create_projects\": true,\n            \"manage_projects\": false,\n            ...\n        }\n    }\n}"
        500:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'An error occurred while checking the permission.'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'An error occurred while checking the permission.'
      tags:
        - 'Role/Permission Management'
    parameters:
      -
        in: path
        name: permission
        description: 'Optional parameter. optional The specific permission to check.'
        required: true
        schema:
          type: string
        examples:
          omitted:
            summary: 'When the value is omitted'
            value: ''
          present:
            summary: 'When the value is present'
            value: "\"edit-post\"\n\nHere is the module-wise permissions list.\n\nActivity Log:\n- manage_activity_log\n- delete_activity_log\n\nAllowances:\n- create_allowances\n- manage_allowances\n- edit_allowances\n- delete_allowances\n\nClients:\n- create_clients\n- manage_clients\n- edit_clients\n- delete_clients\n\nContract Types:\n- create_contract_types\n- manage_contract_types\n- edit_contract_types\n- delete_contract_types\n\nContracts:\n- create_contracts\n- manage_contracts\n- edit_contracts\n- delete_contracts\n\nDeductions:\n- create_deductions\n- manage_deductions\n- edit_deductions\n- delete_deductions\n\nEstimates/Invoices:\n- create_estimates_invoices\n- manage_estimates_invoices\n- edit_estimates_invoices\n- delete_estimates_invoices\n\nExpense Types:\n- create_expense_types\n- manage_expense_types\n- edit_expense_types\n- delete_expense_types\n\nExpenses:\n- create_expenses\n- manage_expenses\n- edit_expenses\n- delete_expenses\n\nItems:\n- create_items\n- manage_items\n- edit_items\n- delete_items\n\nMedia:\n- create_media\n- manage_media\n- delete_media\n\nMeetings:\n- create_meetings\n- manage_meetings\n- edit_meetings\n- delete_meetings\n\nMilestones:\n- create_milestones\n- manage_milestones\n- edit_milestones\n- delete_milestones\n\nPayment Methods:\n- create_payment_methods\n- manage_payment_methods\n- edit_payment_methods\n- delete_payment_methods\n\nPayments:\n- create_payments\n- manage_payments\n- edit_payments\n- delete_payments\n\nPayslips:\n- create_payslips\n- manage_payslips\n- edit_payslips\n- delete_payslips\n\nPriorities:\n- create_priorities\n- manage_priorities\n- edit_priorities\n- delete_priorities\n\nProjects:\n- create_projects\n- manage_projects\n- edit_projects\n- delete_projects\n\nStatuses:\n- create_statuses\n- manage_statuses\n- edit_statuses\n- delete_statuses\n\nSystem Notifications:\n- manage_system_notifications\n- delete_system_notifications\n\nTags:\n- create_tags\n- manage_tags\n- edit_tags\n- delete_tags\n\nTasks:\n- create_tasks\n- manage_tasks\n- edit_tasks\n- delete_tasks\n\nTaxes:\n- create_taxes\n- manage_taxes\n- edit_taxes\n- delete_taxes\n\nTimesheet:\n- create_timesheet\n- manage_timesheet\n- delete_timesheet\n\nUnits:\n- create_units\n- manage_units\n- edit_units\n- delete_units\n\nUsers:\n- create_users\n- manage_users\n- edit_users\n- delete_users\n\nWorkspaces:\n- create_workspaces\n- manage_workspaces\n- edit_workspaces\n- delete_workspaces"
  '/api/settings/{variable}':
    get:
      summary: 'Retrieve the settings for a specific variable.'
      operationId: retrieveTheSettingsForASpecificVariable
      description: 'This endpoint returns the settings for a given variable. The user must be authenticated.'
      parameters:
        -
          in: header
          name: workspace_id
          description: ''
          example: 1
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: false
                      message: 'Settings retrieved successfully'
                      settings:
                        company_title: Taskify
                        currency_full_form: 'Indian Rupee'
                        currency_symbol: ₹
                        currency_code: INR
                        currency_symbol_position: before
                        currency_formate: comma_separated
                        decimal_points_in_currency: '2'
                        allowed_max_upload_size: '2000'
                        allowSignup: 1
                        timezone: Asia/Kolkata
                        date_format: DD-MM-YYYY|d-m-Y
                        time_format: 'H:i:s'
                        toast_position: toast-bottom-center
                        toast_time_out: '2'
                        footer_text: '<p>made with ❤️ by <a href="https://www.infinitietech.com/" target="_blank" rel="noopener">Infinitie Technologies</a></p>'
                        full_logo: 'https://test-taskify.infinitietech.com/storage/logos/zEy4tSCAFSMczWbOoxBZ3B43Nc9eeqMlNBXDrOzn.png'
                        half_logo: null
                        favicon: 'https://test-taskify.infinitietech.com/storage/logos/2FZTNY1qDTz7CTtwWC8Hh1eY4l7cIHgOXG2stVIU.png'
                    properties:
                      error:
                        type: boolean
                        example: false
                      message:
                        type: string
                        example: 'Settings retrieved successfully'
                      settings:
                        type: object
                        properties:
                          company_title:
                            type: string
                            example: Taskify
                          currency_full_form:
                            type: string
                            example: 'Indian Rupee'
                          currency_symbol:
                            type: string
                            example: ₹
                          currency_code:
                            type: string
                            example: INR
                          currency_symbol_position:
                            type: string
                            example: before
                          currency_formate:
                            type: string
                            example: comma_separated
                          decimal_points_in_currency:
                            type: string
                            example: '2'
                          allowed_max_upload_size:
                            type: string
                            example: '2000'
                          allowSignup:
                            type: integer
                            example: 1
                          timezone:
                            type: string
                            example: Asia/Kolkata
                          date_format:
                            type: string
                            example: DD-MM-YYYY|d-m-Y
                          time_format:
                            type: string
                            example: 'H:i:s'
                          toast_position:
                            type: string
                            example: toast-bottom-center
                          toast_time_out:
                            type: string
                            example: '2'
                          footer_text:
                            type: string
                            example: '<p>made with ❤️ by <a href="https://www.infinitietech.com/" target="_blank" rel="noopener">Infinitie Technologies</a></p>'
                          full_logo:
                            type: string
                            example: 'https://test-taskify.infinitietech.com/storage/logos/zEy4tSCAFSMczWbOoxBZ3B43Nc9eeqMlNBXDrOzn.png'
                          half_logo:
                            type: string
                            example: null
                          favicon:
                            type: string
                            example: 'https://test-taskify.infinitietech.com/storage/logos/2FZTNY1qDTz7CTtwWC8Hh1eY4l7cIHgOXG2stVIU.png'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Un Authorized Action!'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Un Authorized Action!'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Setting not found'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Setting not found'
      tags:
        - 'Setting Management'
    parameters:
      -
        in: path
        name: variable
        description: 'The variable type for which settings are to be retrieved. Must be one of the following: general_settings, pusher_settings, email_settings, media_storage_settings, sms_gateway_settings, whatsapp_settings, privacy_policy, about_us, terms_conditions.'
        example: general_settings
        required: true
        schema:
          type: string
tags:
  -
    name: Endpoints
    description: ''
  -
    name: 'User Authentication'
    description: ''
  -
    name: 'Profile Management'
    description: ''
  -
    name: 'Dashboard Management'
    description: ''
  -
    name: 'Project Management'
    description: ''
  -
    name: 'Milestone Management'
    description: ''
  -
    name: 'Project Comments'
    description: ''
  -
    name: 'Project Media'
    description: ''
  -
    name: 'Task Management'
    description: ''
  -
    name: 'Task Comments'
    description: ''
  -
    name: 'Income vs Expense'
    description: ''
  -
    name: 'Status Management'
    description: ''
  -
    name: 'Priority Management'
    description: ''
  -
    name: 'Tag Management'
    description: ''
  -
    name: 'User Management'
    description: ''
  -
    name: 'Client Management'
    description: ''
  -
    name: 'Workspace Management'
    description: ''
  -
    name: 'Meeting Management'
    description: ''
  -
    name: 'Todo Management'
    description: ''
  -
    name: 'Note Management'
    description: ''
  -
    name: 'Leave Request Management'
    description: ''
  -
    name: 'Notification Management'
    description: ''
  -
    name: 'Activity Log Management'
    description: ''
  -
    name: 'Role/Permission Management'
    description: ''
  -
    name: 'Setting Management'
    description: ''
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: ''
security:
  -
    default: []
