openapi: 3.0.1
info:
  title: Mobile APIs
  description: >-
    Mobile APIs for user registration, authentication, profile management, and
    support operations. This specification includes detailed summaries and
    descriptions for every operation, parameter, request/response body, and
    schema so clients can integrate without reading code. Examples and
    field-level constraints are provided wherever applicable.
  version: 1.0.0
  contact:
    name: IVALT Support
    url: https://ivalt.com/support
    email: support@ivalt.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
tags:
  - name: MobileApis
    description: >-
      Operations related to mobile user registration, authentication, profile
      management, and support services.
servers:
  - url: https://dev.api.ivalt.com/admin/public/api
    description: >-
      Development server. All endpoints require a valid `x-api-key` header as
      defined in `securitySchemes.ApiKeyAuth`.
  - url: https://api.ivalt.com/admin/public/api
    description: >-
      Production server. All endpoints require a valid `x-api-key` header as
      defined in `securitySchemes.ApiKeyAuth`.
paths:
  /wp/register/mobile/user:
    post:
      summary: Register Mobile User
      description: >-
        Register a new mobile user with comprehensive device and profile
        information. Typically used during initial app onboarding or user
        registration workflow.
      operationId: registerMobileUser
      tags:
        - MobileApis
      requestBody:
        description: >-
          Complete user registration payload including personal details, device
          information, and platform context.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterMobileUserRequest'
            examples:
              validRequest:
                summary: Valid registration request
                value:
                  name: Bikram
                  country_code: '+91'
                  user_code: 4775
                  mobile: '6283974746'
                  imei: ED9F012A-3991-4BF5-83EB-685F56FA57B7
                  email: bs863313@gmail.com
                  device_token: sdfsdfguiguiguigg
                  platform: iOS
      responses:
        '200':
          description: >-
            User registered successfully. The mobile user account is now created
            and ready for use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Successfully registered
        '400':
          description: >-
            Invalid request payload. One or more required fields are missing or
            failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                missingField:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /wp/send/sms:
    post:
      summary: Send OTP SMS
      description: >-
        Send an OTP (One-Time Password) via SMS to the specified mobile number.
        Used for mobile verification during registration or authentication
        flows.
      operationId: sendOtpSms
      tags:
        - MobileApis
      requestBody:
        description: Mobile number to receive the OTP SMS. Must be a valid phone number.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendOtpSmsRequest'
            examples:
              validRequest:
                summary: Valid OTP request
                value:
                  mobile: '+916283974746'
      responses:
        '200':
          description: >-
            SMS sent successfully. The OTP has been delivered to the provided
            mobile number.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Sms sent successfully
        '400':
          description: Invalid mobile number or missing required field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /wp/confirm/register:
    post:
      summary: Confirm Register
      description: >-
        Confirm and complete the user registration process after OTP
        verification. Updates user record with final details and activates the
        account.
      operationId: confirmRegister
      tags:
        - MobileApis
      requestBody:
        description: >-
          Complete user registration confirmation payload. Must match the
          initial registration data.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConfirmRegisterRequest'
            examples:
              validRequest:
                summary: Valid confirmation request
                value:
                  name: Jaskaran
                  country_code: '+91'
                  user_code: 5630
                  mobile: 62839xxxxx
                  device_token: '123456'
                  imei: ED9F012A-3991-4BF5-83EB-685F56FA57B7
                  email: bikramjeet@ivalt.com
                  platform: ios
      responses:
        '200':
          description: >-
            User registered/updated successfully. The account is now active and
            ready for use.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: User registered/updated successfully
        '400':
          description: Invalid request payload or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /wp/mobile/refresh/token:
    post:
      summary: Refresh Mobile Token
      description: >-
        Refresh the authentication token for a mobile user. Used to maintain
        session validity and security.
      operationId: refreshMobileToken
      tags:
        - MobileApis
      requestBody:
        description: >-
          Token refresh payload containing device identification and current
          token.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefreshMobileTokenRequest'
            examples:
              validRequest:
                summary: Valid token refresh request
                value:
                  imei: ED9F012A-3991-4BF5-83EB-685F56FA57B7
                  mobile: 62839xxxxx
                  token: 4590-C4864D900D98-75
      responses:
        '200':
          description: >-
            Token updated successfully. The user's session has been extended
            with a new token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Token updated successfully
        '400':
          description: Invalid request payload or missing required parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /contact/support:
    post:
      summary: Contact Support
      description: >-
        Send a support message to IVALT support team. Includes user contact
        information for follow-up.
      operationId: contactSupport
      tags:
        - MobileApis
      requestBody:
        description: Support request payload containing user message and contact details.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactSupportRequest'
            examples:
              validRequest:
                summary: Valid support request
                value:
                  mobile: 62839xxxxx
                  message: This is api test message laravel apis
                  email: bikramjeet@ivalt.com
      responses:
        '200':
          description: >-
            Support mail sent successfully. The message has been delivered to
            the support team.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Mail sent successfully
        '400':
          description: Invalid request payload or missing contact information.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /save/faceauth/success/{auth_token}:
    get:
      summary: Save Faceauth Success
      description: >-
        Record a successful face authentication event. Typically called by
        authentication systems after successful biometric verification.
      operationId: saveFaceauthSuccess
      tags:
        - MobileApis
      parameters:
        - name: auth_token
          in: path
          required: true
          description: >-
            Unique authentication token identifying the face authentication
            session.
          schema:
            type: string
            example: faceauth_token_12345
      responses:
        '200':
          description: Face authentication successfully recorded in the system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Faceauth saved successfully
        '400':
          description: Invalid authentication token or missing path parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /enrolstatus:
    post:
      summary: Enrollment Status
      description: >-
        Check the enrollment status of a mobile user. Returns current enrollment
        state and any pending requirements.
      operationId: enrollmentStatus
      tags:
        - MobileApis
      requestBody:
        description: Mobile number to check enrollment status for.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollmentStatusRequest'
            examples:
              validRequest:
                summary: Valid enrollment status check
                value:
                  mobile: 62839xxxxx
      responses:
        '200':
          description: Enrollment status retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentStatusResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Enrollment status
                    data:
                      enrolled: true
                      enrollment_date: '2024-01-15'
                      status: completed
        '400':
          description: Invalid mobile number or missing required field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /is_enrolled:
    post:
      summary: Check Enrollment
      description: >-
        Verify if a user is enrolled in the system. Returns boolean result
        indicating enrollment status.
      operationId: checkEnrollment
      tags:
        - MobileApis
      requestBody:
        description: Mobile number to check enrollment for.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckEnrollmentRequest'
            examples:
              validRequest:
                summary: Valid enrollment check
                value:
                  mobile: 62839xxxxx
      responses:
        '200':
          description: Enrollment check completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckEnrollmentResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Enrollment check result
                    enrolled: true
        '400':
          description: Invalid mobile number or missing required field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /check-imei:
    post:
      summary: Check IMEI
      description: >-
        Validate and check the status of a device IMEI (International Mobile
        Equipment Identity). Used for device authentication and security.
      operationId: checkImei
      tags:
        - MobileApis
      requestBody:
        description: IMEI number to validate and check.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckImeiRequest'
            examples:
              validRequest:
                summary: Valid IMEI check request
                value:
                  imei: ED9F012A-3991-4BF5-83EB-685F56FA57B7
      responses:
        '200':
          description: IMEI check completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckImeiResponse'
              examples:
                success:
                  value:
                    status: success
                    message: IMEI check result
                    valid: true
                    device_type: smartphone
        '400':
          description: Invalid IMEI format or missing required field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /user/assign-org:
    post:
      summary: Assign User to Organization
      description: >-
        Assign a mobile user to a specific organization. Links user account with
        organizational context and permissions.
      operationId: assignUserToOrganization
      tags:
        - MobileApis
      requestBody:
        description: >-
          Organization assignment payload containing user and organization
          details.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignUserToOrganizationRequest'
            examples:
              validRequest:
                summary: Valid organization assignment
                value:
                  country_code: '+91'
                  mobile: 62839xxxxx
                  organization_code: Ivalt
      responses:
        '200':
          description: User assigned to organization successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: User assigned successfully
        '400':
          description: Invalid request payload or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /user/check-org-assignment:
    post:
      summary: Check Organization Assignment
      description: >-
        Verify if a user is assigned to any organization and retrieve assignment
        details.
      operationId: checkOrganizationAssignment
      tags:
        - MobileApis
      requestBody:
        description: User details to check organization assignment for.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckOrganizationAssignmentRequest'
            examples:
              validRequest:
                summary: Valid organization check
                value:
                  country_code: '+91'
                  mobile: '9530654704'
      responses:
        '200':
          description: Organization assignment check completed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckOrganizationAssignmentResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Check org assignment result
                    assigned: true
                    organization_code: Ivalt
                    assigned_date: '2024-01-15'
        '400':
          description: Invalid request payload or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /resend-email-verification:
    post:
      summary: Resend Email Verification
      description: >-
        Resend email verification link to user's email address. Used when
        initial verification email was not received or expired.
      operationId: resendEmailVerification
      tags:
        - MobileApis
      requestBody:
        description: User details for email verification resend.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResendEmailVerificationRequest'
            examples:
              validRequest:
                summary: Valid email verification resend
                value:
                  email: bikramjeet@ivalt.com
                  country_code: '+91'
                  mobile: 62839xxxxx
      responses:
        '200':
          description: Email verification resent successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Email verification resent
        '400':
          description: Invalid request payload or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /update-profile:
    post:
      summary: Update Profile
      description: Update user profile information such as name and contact details.
      operationId: updateProfile
      tags:
        - MobileApis
      requestBody:
        description: Updated profile information for the user.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProfileRequest'
            examples:
              validRequest:
                summary: Valid profile update request
                value:
                  name: Bikramjeet Singh
                  country_code: '+91'
                  mobile: 62839xxxxx
      responses:
        '200':
          description: Profile updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
              examples:
                success:
                  value:
                    status: success
                    message: Profile updated
        '400':
          description: Invalid request payload or missing required fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
  /getuser:
    post:
      summary: Get User
      description: Retrieve user details and profile information by mobile number.
      operationId: getUser
      tags:
        - MobileApis
      requestBody:
        description: Mobile number to retrieve user details for.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetUserRequest'
            examples:
              validRequest:
                summary: Valid user retrieval request
                value:
                  mobile: 62839xxxxx
      responses:
        '200':
          description: User details retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUserResponse'
              examples:
                success:
                  value:
                    status: success
                    message: User details
                    data:
                      name: Bikramjeet Singh
                      email: bikramjeet@ivalt.com
                      mobile: 62839xxxxx
                      country_code: '+91'
                      enrolled: true
        '400':
          description: Invalid mobile number or missing required field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalid:
                  value:
                    status: error
                    message: Bad request - missing or invalid data
      security:
        - ApiKeyAuth: []
components:
  schemas:
    RegisterMobileUserRequest:
      type: object
      description: Payload for registering a new mobile user.
      properties:
        name:
          type: string
          description: Full name of the user.
          example: Bikram
        country_code:
          type: string
          description: Country code in E.164 format.
          pattern: ^\+[1-9]\d{0,3}$
          example: '+91'
        user_code:
          type: integer
          description: Unique user identification code.
          example: 4775
        mobile:
          type: string
          description: Mobile number without country code.
          pattern: ^[0-9]{10,15}$
          example: 62839xxxxx
        imei:
          type: string
          description: Device IMEI or unique device identifier.
          example: ED9F012A-3991-4BF5-83EB-685F56FA57B7
        email:
          type: string
          format: email
          description: User's email address.
          example: bs863313@gmail.com
        device_token:
          type: string
          description: Push notification device token.
          example: sdfsdfguiguiguigg
        platform:
          type: string
          description: Device platform (iOS, Android, etc.).
          enum:
            - iOS
            - Android
            - ios
            - android
          example: iOS
      required:
        - name
        - country_code
        - user_code
        - mobile
        - imei
        - email
        - device_token
        - platform
    SendOtpSmsRequest:
      type: object
      description: Payload for sending OTP via SMS.
      properties:
        mobile:
          type: string
          description: Mobile number to receive OTP.
          pattern: ^\+[1-9]\d{7,14}$
          example: +9162839xxxxx
      required:
        - mobile
    ConfirmRegisterRequest:
      type: object
      description: Payload for confirming user registration after OTP verification.
      properties:
        name:
          type: string
          description: Full name of the user.
          example: Bikramjeet Singh
        country_code:
          type: string
          description: Country code in E.164 format.
          pattern: ^\+[1-9]\d{0,3}$
          example: '+91'
        user_code:
          type: integer
          description: Unique user identification code.
          example: 5630
        mobile:
          type: string
          description: Mobile number without country code.
          example: 62839xxxxx
        device_token:
          type: string
          description: Push notification device token.
          example: '123456'
        imei:
          type: string
          description: Device IMEI or unique device identifier.
          example: ED9F012A-3991-4BF5-83EB-685F56FA57B7
        email:
          type: string
          format: email
          description: User's email address.
          example: example@ivalt.com
        platform:
          type: string
          description: Device platform (iOS, Android, etc.).
          enum:
            - iOS
            - Android
            - ios
            - android
          example: ios
      required:
        - name
        - country_code
        - user_code
        - mobile
        - device_token
        - imei
        - email
        - platform
    RefreshMobileTokenRequest:
      type: object
      description: Payload for refreshing mobile authentication token.
      properties:
        imei:
          type: string
          description: Device IMEI or unique device identifier.
          example: ED9F012A-3991-4BF5-83EB-685F56FA57B7
        mobile:
          type: string
          description: Mobile number without country code.
          example: 62839xxxxx
        token:
          type: string
          description: Current authentication token to be refreshed.
          example: 4590-C4864D900D98-75
      required:
        - imei
        - mobile
        - token
    ContactSupportRequest:
      type: object
      description: Payload for contacting support team.
      properties:
        mobile:
          type: string
          description: User's mobile number for contact.
          example: 62839xxxxx
        message:
          type: string
          description: Support message or query.
          example: This is api test message laravel apis
        email:
          type: string
          format: email
          description: User's email address for follow-up.
          example: bikramjeet@ivalt.com
      required:
        - mobile
        - message
        - email
    EnrollmentStatusRequest:
      type: object
      description: Payload for checking enrollment status.
      properties:
        mobile:
          type: string
          description: Mobile number to check enrollment status for.
          example: 62839xxxxx
      required:
        - mobile
    EnrollmentStatusResponse:
      type: object
      description: Response containing enrollment status details.
      properties:
        status:
          type: string
          example: success
          description: Outcome of the request.
        message:
          type: string
          example: Enrollment status
          description: Summary of the result.
        data:
          type: object
          properties:
            enrolled:
              type: boolean
              example: true
            enrollment_date:
              type: string
              format: date
              example: '2024-01-15'
            status:
              type: string
              example: completed
      required:
        - status
        - message
        - data
    CheckEnrollmentRequest:
      type: object
      description: Payload for checking user enrollment.
      properties:
        mobile:
          type: string
          description: Mobile number to check enrollment for.
          example: 62839xxxxx
      required:
        - mobile
    CheckEnrollmentResponse:
      type: object
      description: Response indicating enrollment status.
      properties:
        status:
          type: string
          example: success
          description: Outcome of the request.
        message:
          type: string
          example: Enrollment check result
          description: Summary of the result.
        enrolled:
          type: boolean
          example: true
          description: Indicates whether the user is enrolled.
      required:
        - status
        - message
        - enrolled
    CheckImeiRequest:
      type: object
      description: Payload for IMEI validation check.
      properties:
        imei:
          type: string
          description: IMEI number to validate.
          example: ED9F012A-3991-4BF5-83EB-685F56FA57B7
      required:
        - imei
    CheckImeiResponse:
      type: object
      description: Response containing IMEI validation results.
      properties:
        status:
          type: string
          example: success
          description: Outcome of the request.
        message:
          type: string
          example: IMEI check result
          description: Summary of the IMEI check.
        valid:
          type: boolean
          example: true
          description: True if the IMEI is valid and known.
        device_type:
          type: string
          example: smartphone
          description: Classified type of the device for the IMEI (e.g., smartphone).
      required:
        - status
        - message
        - valid
    AssignUserToOrganizationRequest:
      type: object
      description: Payload for assigning user to organization.
      properties:
        country_code:
          type: string
          description: Country code in E.164 format.
          example: '+91'
        mobile:
          type: string
          description: Mobile number without country code.
          example: 62839xxxxx
        organization_code:
          type: string
          description: Unique organization identifier.
          example: Ivalt
      required:
        - country_code
        - mobile
        - organization_code
    CheckOrganizationAssignmentRequest:
      type: object
      description: Payload for checking organization assignment.
      properties:
        country_code:
          type: string
          description: Country code in E.164 format.
          example: '+91'
        mobile:
          type: string
          description: Mobile number without country code.
          example: '9530654704'
      required:
        - country_code
        - mobile
    CheckOrganizationAssignmentResponse:
      type: object
      description: Response containing organization assignment details.
      properties:
        status:
          type: string
          example: success
        message:
          type: string
          example: Check org assignment result
        assigned:
          type: boolean
          example: true
        organization_code:
          type: string
          example: Ivalt
        assigned_date:
          type: string
          format: date
          example: '2024-01-15'
      required:
        - status
        - message
        - assigned
    ResendEmailVerificationRequest:
      type: object
      description: Payload for resending email verification.
      properties:
        email:
          type: string
          format: email
          description: Email address to resend verification to.
          example: example@ivalt.com
        country_code:
          type: string
          description: Country code in E.164 format.
          example: '+91'
        mobile:
          type: string
          description: Mobile number without country code.
          example: 62839xxxxx
      required:
        - email
        - country_code
        - mobile
    DeleteProfileRequest:
      type: object
      description: Payload for deleting user profile.
      properties:
        country_code:
          type: string
          description: Country code in E.164 format.
          example: '+91'
        mobile:
          type: string
          description: Mobile number without country code.
          example: 62839xxxxx
      required:
        - country_code
        - mobile
    UpdateProfileRequest:
      type: object
      description: Payload for updating user profile.
      properties:
        name:
          type: string
          description: Updated full name of the user.
          example: Bikramjeet Singh
        country_code:
          type: string
          description: Country code.
          example: '+91'
        mobile:
          type: string
          description: Mobile number without country code.
          example: 62839xxxxx
      required:
        - name
        - country_code
        - mobile
    GetUserRequest:
      type: object
      description: Payload for retrieving user details.
      properties:
        mobile:
          type: string
          description: Mobile number to retrieve user details for.
          example: 62839xxxxx
      required:
        - mobile
    GetUserResponse:
      type: object
      description: Response containing user details.
      properties:
        status:
          type: string
          example: success
          description: Outcome of the request.
        message:
          type: string
          example: User details
          description: Summary of the result.
        data:
          type: object
          properties:
            name:
              type: string
              example: Bikramjeet Singh
            email:
              type: string
              example: bikramjeet@ivalt.com
            mobile:
              type: string
              example: 62839xxxxx
            country_code:
              type: string
              example: '+91'
            enrolled:
              type: boolean
              example: true
      required:
        - status
        - message
        - data
    SuccessResponse:
      type: object
      description: Standard success response envelope.
      properties:
        status:
          type: string
          example: success
          description: Indicates request success. Always `success` in this schema.
        message:
          type: string
          example: Operation completed successfully
          description: Short description of the successful operation outcome..
      required:
        - status
        - message
      title: Success Response
    ErrorResponse:
      type: object
      description: >-
        Standard error envelope returned when a request fails validation, is
        unauthorized, or encounters a server error.
      properties:
        status:
          type: string
          description: Indicates failure. Always `error` in this schema.
          example: error
        message:
          type: string
          description: Detailed explanation of the error to help clients fix the request.
          example: Invalid request parameters
      required:
        - status
        - message
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key required for authorization. Include in every request to
        authenticated endpoints.
security:
  - ApiKeyAuth: []
