openapi: 3.0.3
info:
  title: 'Laravel API Documentation'
  description: ''
  version: 1.0.0
servers:
  -
    url: 'https://jobcy.botble.com'
tags:
  -
    name: 'Account Management'
    description: ''
  -
    name: Ads
    description: ''
  -
    name: Authentication
    description: ''
  -
    name: Blog
    description: ''
  -
    name: Companies
    description: ''
  -
    name: 'Device Tokens'
    description: ''
  -
    name: Endpoints
    description: ''
  -
    name: Jobs
    description: ''
  -
    name: Languages
    description: ''
  -
    name: Notifications
    description: ''
  -
    name: Page
    description: ''
  -
    name: Profile
    description: ''
  -
    name: Reviews
    description: ''
  -
    name: 'Social Login'
    description: ''
paths:
  /api/v1/account/profile:
    get:
      summary: 'Get user profile'
      operationId: getUserProfile
      description: "Get the authenticated user's profile information."
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
    put:
      summary: 'Update user profile'
      operationId: updateUserProfile
      description: "Update the authenticated user's profile information."
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: "User's first name. Must not be greater than 120 characters. Must be at least 2 characters."
                  example: John
                  nullable: false
                last_name:
                  type: string
                  description: "User's last name. Must not be greater than 120 characters. Must be at least 2 characters."
                  example: Doe
                  nullable: false
                phone:
                  type: string
                  description: 'User''s phone number. Must match the regex /^([0-9\s\-\+\(\)]*)$/. Must be at least 8 characters. Must not be greater than 15 characters.'
                  example: '+1234567890'
                  nullable: true
                dob:
                  type: string
                  description: 'Date of birth. Must be a valid date.'
                  example: '1990-01-01'
                  nullable: true
                address:
                  type: string
                  description: "User's address. Must not be greater than 250 characters."
                  example: '123 Main St, City, State'
                  nullable: true
                gender:
                  type: string
                  description: "User's gender."
                  example: male
                  nullable: true
                  enum:
                    - male
                    - female
                    - other
                description:
                  type: string
                  description: "User's description. Must not be greater than 4000 characters."
                  example: 'Experienced software developer...'
                  nullable: true
                bio:
                  type: string
                  description: "User's bio."
                  example: 'Passionate about technology...'
                  nullable: true
                country_id:
                  type: number
                  description: 'Country ID.'
                  example: 1.0
                  nullable: true
                state_id:
                  type: number
                  description: 'State ID.'
                  example: 1.0
                  nullable: true
                city_id:
                  type: number
                  description: 'City ID.'
                  example: 1.0
                  nullable: true
                locale:
                  type: string
                  description: ''
                  example: ar
                  nullable: false
                  enum:
                    - ar
                    - en
                    - vi
              required:
                - first_name
                - last_name
                - locale
  /api/v1/account/avatar:
    post:
      summary: ''
      operationId: postApiV1AccountAvatar
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                avatar:
                  type: string
                  format: binary
                  description: 'Must be an image. Must not be greater than 2048 kilobytes.'
                  nullable: false
              required:
                - avatar
      security: []
  /api/v1/account/applications:
    get:
      summary: ''
      operationId: getApiV1AccountApplications
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
  '/api/v1/account/applications/{id}':
    get:
      summary: ''
      operationId: getApiV1AccountApplicationsId
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AccountApplicationsId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the application.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/account/saved-jobs:
    get:
      summary: ''
      operationId: getApiV1AccountSavedJobs
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
  '/api/v1/account/saved-jobs/{jobId}':
    post:
      summary: ''
      operationId: postApiV1AccountSavedJobsJobId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AccountSavedJobsJobId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      security: []
    parameters:
      -
        in: path
        name: jobId
        description: ''
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/account/companies:
    get:
      summary: ''
      operationId: getApiV1AccountCompanies
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
  /api/v1/account/jobs:
    get:
      summary: ''
      operationId: getApiV1AccountJobs
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
    post:
      summary: ''
      operationId: postApiV1AccountJobs
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Job title. Must be at least 3 characters. Must not be greater than 120 characters.'
                  example: 'Senior Software Engineer'
                  nullable: false
                description:
                  type: string
                  description: 'Job description. Must not be greater than 400 characters.'
                  example: 'We are looking for a senior software engineer...'
                  nullable: true
                content:
                  type: string
                  description: 'Detailed job content. Must not be greater than 100000 characters.'
                  example: 'Full job description with requirements...'
                  nullable: true
                status:
                  type: string
                  description: ''
                  example: closed
                  nullable: false
                  enum:
                    - published
                    - draft
                    - pending
                    - closed
                salary_type:
                  type: string
                  description: 'Type of salary (fixed, negotiable, competitive, hidden).'
                  example: fixed
                  nullable: false
                  enum:
                    - negotiable
                    - competitive
                    - hidden
                    - fixed
                latitude:
                  type: string
                  description: 'Must match the regex /^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$/. Must not be greater than 20 characters.'
                  example: bngzmiyvdljnikhw
                  nullable: true
                longitude:
                  type: string
                  description: 'Must match the regex /^[-]?((((1[0-7][0-9])|([0-9]?[0-9]))\.(\d+))|180(\.0+)?)$/. Must not be greater than 20 characters.'
                  example: aykcmyuwpwlvqwrs
                  nullable: true
                zip_code:
                  type: string
                  description: 'Must not be greater than 20 characters.'
                  example: itcpscqldzsnrwtu
                  nullable: true
                number_of_positions:
                  type: integer
                  description: 'Number of open positions. Must not be greater than 10000.'
                  example: 2
                  nullable: false
                apply_url:
                  type: string
                  description: 'Must be a valid URL. Must not be greater than 2048 characters.'
                  example: 'http://raynor.org/molestias-fugit-deleniti-distinctio-eum-doloremque-id'
                  nullable: true
                external_apply_behavior:
                  type: string
                  description: ''
                  example: new_tab
                  nullable: true
                  enum:
                    - ''
                    - disabled
                    - new_tab
                    - current_tab
                unique_id:
                  type: string
                  description: ''
                  example: architecto
                  nullable: true
                company_id:
                  type: string
                  description: 'ID of the company posting the job.'
                  example: 1
                  nullable: false
                  enum:
                    - null
                custom_fields:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: 'Must not be greater than 255 characters.'
                        example: 'n'
                        nullable: false
                      value:
                        type: string
                        description: 'Must not be greater than 255 characters.'
                        example: g
                        nullable: false
                    required:
                      - name
                      - value
              required:
                - name
                - number_of_positions
                - company_id
      security: []
  '/api/v1/account/jobs/{id}':
    put:
      summary: ''
      operationId: putApiV1AccountJobsId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: 'Job title. Must be at least 3 characters. Must not be greater than 120 characters.'
                  example: 'Senior Software Engineer'
                  nullable: false
                description:
                  type: string
                  description: 'Job description. Must not be greater than 400 characters.'
                  example: 'We are looking for a senior software engineer...'
                  nullable: true
                content:
                  type: string
                  description: 'Detailed job content. Must not be greater than 100000 characters.'
                  example: 'Full job description with requirements...'
                  nullable: true
                status:
                  type: string
                  description: ''
                  example: closed
                  nullable: false
                  enum:
                    - published
                    - draft
                    - pending
                    - closed
                salary_type:
                  type: string
                  description: 'Type of salary (fixed, negotiable, competitive, hidden).'
                  example: fixed
                  nullable: false
                  enum:
                    - negotiable
                    - competitive
                    - hidden
                    - fixed
                latitude:
                  type: string
                  description: 'Must match the regex /^[-]?(([0-8]?[0-9])\.(\d+))|(90(\.0+)?)$/. Must not be greater than 20 characters.'
                  example: bngzmiyvdljnikhw
                  nullable: true
                longitude:
                  type: string
                  description: 'Must match the regex /^[-]?((((1[0-7][0-9])|([0-9]?[0-9]))\.(\d+))|180(\.0+)?)$/. Must not be greater than 20 characters.'
                  example: aykcmyuwpwlvqwrs
                  nullable: true
                zip_code:
                  type: string
                  description: 'Must not be greater than 20 characters.'
                  example: itcpscqldzsnrwtu
                  nullable: true
                number_of_positions:
                  type: integer
                  description: 'Number of open positions. Must not be greater than 10000.'
                  example: 2
                  nullable: false
                apply_url:
                  type: string
                  description: 'Must be a valid URL. Must not be greater than 2048 characters.'
                  example: 'http://raynor.org/molestias-fugit-deleniti-distinctio-eum-doloremque-id'
                  nullable: true
                external_apply_behavior:
                  type: string
                  description: ''
                  example: disabled
                  nullable: true
                  enum:
                    - ''
                    - disabled
                    - new_tab
                    - current_tab
                unique_id:
                  type: string
                  description: ''
                  example: architecto
                  nullable: true
                company_id:
                  type: string
                  description: 'ID of the company posting the job.'
                  example: 1
                  nullable: false
                  enum:
                    - null
                custom_fields:
                  type: array
                  description: ''
                  example:
                    - []
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: 'Must not be greater than 255 characters.'
                        example: 'n'
                        nullable: false
                      value:
                        type: string
                        description: 'Must not be greater than 255 characters.'
                        example: g
                        nullable: false
                    required:
                      - name
                      - value
              required:
                - name
                - number_of_positions
                - company_id
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1AccountJobsId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - 'Account Management'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/account/transactions:
    get:
      summary: ''
      operationId: getApiV1AccountTransactions
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
  /api/v1/account/invoices:
    get:
      summary: ''
      operationId: getApiV1AccountInvoices
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
  '/api/v1/account/invoices/{id}':
    get:
      summary: ''
      operationId: getApiV1AccountInvoicesId
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Account Management'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the invoice.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/ads:
    get:
      summary: 'Get ads'
      operationId: getAds
      description: ''
      parameters:
        -
          in: query
          name: keys
          description: 'Array of ad keys to filter by.'
          example:
            - homepage-banner
            - sidebar-banner
          required: false
          schema:
            type: array
            description: 'Array of ad keys to filter by.'
            example:
              - homepage-banner
              - sidebar-banner
            items:
              type: string
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Ads
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                keys:
                  type: array
                  description: 'Array of ad keys to filter by.'
                  example:
                    - homepage-banner
                    - sidebar-banner
                  items:
                    type: string
      security: []
  /api/v1/register:
    post:
      summary: Register
      operationId: register
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data: null
                  message: 'Registered successfully! We emailed you to verify your account!'
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: 'Registered successfully! We emailed you to verify your account!'
        422:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  message: 'The given data was invalid.'
                  errors:
                    name:
                      - 'The name field is required.'
                    email:
                      - 'The email field is required.'
                    password:
                      - 'The password field is required.'
                properties:
                  message:
                    type: string
                    example: 'The given data was invalid.'
                  errors:
                    type: object
                    properties:
                      name:
                        type: array
                        example:
                          - 'The name field is required.'
                        items:
                          type: string
                      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:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: 'The first name of the user. This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: John
                  nullable: true
                last_name:
                  type: string
                  description: 'The last name of the user. This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: Smith
                  nullable: true
                name:
                  type: string
                  description: 'The name of the user.'
                  example: architecto
                  nullable: true
                email:
                  type: string
                  description: 'The email of the user.'
                  example: gbailey@example.net
                  nullable: false
                password:
                  type: string
                  description: 'The password of user to create.'
                  example: '|]|{+-'
                  nullable: false
                phone:
                  type: string
                  description: 'The phone of the user.'
                  example: architecto
                  nullable: true
                password_confirmation:
                  type: string
                  description: 'The password confirmation.'
                  example: architecto
                  nullable: false
              required:
                - name
                - email
                - password
                - phone
                - password_confirmation
      security: []
  /api/v1/login:
    post:
      summary: Login
      operationId: login
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    token: 1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs...
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        example: 1|aF5s7p3xxx1lVL8hkSrPN72m4wPVpTvTs...
                  message:
                    type: string
                    example: null
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: gbailey@example.net
                  nullable: false
                password:
                  type: string
                  description: 'The password of user to create.'
                  example: '|]|{+-'
                  nullable: false
              required:
                - email
                - password
      security: []
  /api/v1/email/check:
    post:
      summary: 'Check email existing or not'
      operationId: checkEmailExistingOrNot
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    exists: true
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      exists:
                        type: boolean
                        example: true
                  message:
                    type: string
                    example: null
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: gbailey@example.net
                  nullable: false
              required:
                - email
      security: []
  /api/v1/password/forgot:
    post:
      summary: 'Forgot password'
      operationId: forgotPassword
      description: 'Send a reset link to the given user.'
      parameters: []
      responses: {  }
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: gbailey@example.net
                  nullable: false
              required:
                - email
      security: []
  /api/v1/resend-verify-account-email:
    post:
      summary: 'Resend email verification'
      operationId: resendEmailVerification
      description: 'Resend the email verification notification.'
      parameters: []
      responses: {  }
      tags:
        - Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  description: 'The email of the user.'
                  example: gbailey@example.net
                  nullable: false
              required:
                - email
      security: []
  /api/v1/logout:
    get:
      summary: Logout
      operationId: logout
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Authentication
  /api/v1/search:
    get:
      summary: 'Search post'
      operationId: searchPost
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    items:
                      -
                        id: 1
                        title: 'Sample Post'
                        slug: sample-post
                        excerpt: 'This is a sample post excerpt'
                    query: sample
                    count: 1
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      items:
                        type: array
                        example:
                          -
                            id: 1
                            title: 'Sample Post'
                            slug: sample-post
                            excerpt: 'This is a sample post excerpt'
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            title:
                              type: string
                              example: 'Sample Post'
                            slug:
                              type: string
                              example: sample-post
                            excerpt:
                              type: string
                              example: 'This is a sample post excerpt'
                      query:
                        type: string
                        example: sample
                      count:
                        type: integer
                        example: 1
        400:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'No search result'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'No search result'
      tags:
        - Blog
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  description: 'The search keyword.'
                  example: architecto
                  nullable: false
              required:
                - q
      security: []
  /api/v1/posts:
    get:
      summary: 'List posts'
      operationId: listPosts
      description: ''
      parameters:
        -
          in: query
          name: per_page
          description: 'The number of items to return per page (default: 10).'
          example: 16
          required: false
          schema:
            type: integer
            description: 'The number of items to return per page (default: 10).'
            example: 16
            nullable: false
        -
          in: query
          name: page
          description: 'The page number to retrieve (default: 1).'
          example: 16
          required: false
          schema:
            type: integer
            description: 'The page number to retrieve (default: 1).'
            example: 16
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      id: 1
                      title: 'Sample Post'
                      slug: sample-post
                      excerpt: 'This is a sample post excerpt'
                      content: 'Full post content here...'
                      published_at: '2023-01-01T00:00:00.000000Z'
                      author:
                        id: 1
                        name: 'John Doe'
                      categories: []
                      tags: []
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        title: 'Sample Post'
                        slug: sample-post
                        excerpt: 'This is a sample post excerpt'
                        content: 'Full post content here...'
                        published_at: '2023-01-01T00:00:00.000000Z'
                        author:
                          id: 1
                          name: 'John Doe'
                        categories: []
                        tags: []
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        title:
                          type: string
                          example: 'Sample Post'
                        slug:
                          type: string
                          example: sample-post
                        excerpt:
                          type: string
                          example: 'This is a sample post excerpt'
                        content:
                          type: string
                          example: 'Full post content here...'
                        published_at:
                          type: string
                          example: '2023-01-01T00:00:00.000000Z'
                        author:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                            name:
                              type: string
                              example: 'John Doe'
                        categories:
                          type: array
                          example: []
                        tags:
                          type: array
                          example: []
                  message:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  /api/v1/posts/filters:
    get:
      summary: 'Filters posts'
      operationId: filtersPosts
      description: ''
      parameters:
        -
          in: query
          name: page
          description: 'Current page of the collection. Default: 1'
          example: 16
          required: false
          schema:
            type: integer
            description: 'Current page of the collection. Default: 1'
            example: 16
            nullable: false
        -
          in: query
          name: per_page
          description: 'Maximum number of items to be returned in result set.Default: 10'
          example: 16
          required: false
          schema:
            type: integer
            description: 'Maximum number of items to be returned in result set.Default: 10'
            example: 16
            nullable: false
        -
          in: query
          name: search
          description: 'Limit results to those matching a string.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit results to those matching a string.'
            example: architecto
            nullable: false
        -
          in: query
          name: after
          description: 'Limit response to posts published after a given ISO8601 compliant date.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit response to posts published after a given ISO8601 compliant date.'
            example: architecto
            nullable: false
        -
          in: query
          name: author
          description: 'Limit result set to posts assigned to specific authors.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit result set to posts assigned to specific authors.'
            example: architecto
            nullable: false
        -
          in: query
          name: author_exclude
          description: 'Ensure result set excludes posts assigned to specific authors.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Ensure result set excludes posts assigned to specific authors.'
            example: architecto
            nullable: false
        -
          in: query
          name: before
          description: 'Limit response to posts published before a given ISO8601 compliant date.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit response to posts published before a given ISO8601 compliant date.'
            example: architecto
            nullable: false
        -
          in: query
          name: exclude
          description: 'Ensure result set excludes specific IDs.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Ensure result set excludes specific IDs.'
            example: architecto
            nullable: false
        -
          in: query
          name: include
          description: 'Limit result set to specific IDs.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit result set to specific IDs.'
            example: architecto
            nullable: false
        -
          in: query
          name: order
          description: 'Order sort attribute ascending or descending. Default: desc .One of: asc, desc'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Order sort attribute ascending or descending. Default: desc .One of: asc, desc'
            example: architecto
            nullable: false
        -
          in: query
          name: order_by
          description: 'Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id,  slug, title'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Sort collection by object attribute. Default: updated_at. One of: author, created_at, updated_at, id,  slug, title'
            example: architecto
            nullable: false
        -
          in: query
          name: categories
          description: 'Limit result set to all items that have the specified term assigned in the categories taxonomy.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit result set to all items that have the specified term assigned in the categories taxonomy.'
            example: architecto
            nullable: false
        -
          in: query
          name: categories_exclude
          description: 'Limit result set to all items except those that have the specified term assigned in the categories taxonomy.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit result set to all items except those that have the specified term assigned in the categories taxonomy.'
            example: architecto
            nullable: false
        -
          in: query
          name: tags
          description: 'Limit result set to all items that have the specified term assigned in the tags taxonomy.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit result set to all items that have the specified term assigned in the tags taxonomy.'
            example: architecto
            nullable: false
        -
          in: query
          name: tags_exclude
          description: 'Limit result set to all items except those that have the specified term assigned in the tags taxonomy.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit result set to all items except those that have the specified term assigned in the tags taxonomy.'
            example: architecto
            nullable: false
        -
          in: query
          name: featured
          description: 'Limit result set to items that are sticky.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit result set to items that are sticky.'
            example: architecto
            nullable: false
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  '/api/v1/posts/{slug}':
    get:
      summary: 'Get post by slug'
      operationId: getPostBySlug
      description: ''
      parameters:
        -
          in: query
          name: slug
          description: 'Find by slug of post.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Find by slug of post.'
            example: architecto
            nullable: false
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the post.'
        example: architecto
        required: true
        schema:
          type: string
  /api/v1/categories/filters:
    get:
      summary: 'Filters categories'
      operationId: filtersCategories
      description: ''
      parameters:
        -
          in: query
          name: page
          description: 'Current page of the collection (default: 1).'
          example: 16
          required: false
          schema:
            type: integer
            description: 'Current page of the collection (default: 1).'
            example: 16
            nullable: false
        -
          in: query
          name: per_page
          description: 'Maximum number of items to be returned (default: 10).'
          example: 16
          required: false
          schema:
            type: integer
            description: 'Maximum number of items to be returned (default: 10).'
            example: 16
            nullable: false
        -
          in: query
          name: search
          description: 'Limit results to those matching a string.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Limit results to those matching a string.'
            example: architecto
            nullable: false
        -
          in: query
          name: order
          description: 'Order sort attribute ascending or descending (default: desc). One of: asc, desc.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Order sort attribute ascending or descending (default: desc). One of: asc, desc.'
            example: architecto
            nullable: false
        -
          in: query
          name: order_by
          description: 'Sort collection by object attribute (default: created_at). One of: created_at, updated_at, id, name.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Sort collection by object attribute (default: created_at). One of: created_at, updated_at, id, name.'
            example: architecto
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      id: 1
                      name: Technology
                      slug: technology
                      description: 'Latest tech news and updates'
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        name: Technology
                        slug: technology
                        description: 'Latest tech news and updates'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        name:
                          type: string
                          example: Technology
                        slug:
                          type: string
                          example: technology
                        description:
                          type: string
                          example: 'Latest tech news and updates'
                  message:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
  '/api/v1/categories/{slug}':
    get:
      summary: 'Get category by slug'
      operationId: getCategoryBySlug
      description: ''
      parameters:
        -
          in: query
          name: slug
          description: 'Find by slug of category.'
          example: architecto
          required: false
          schema:
            type: string
            description: 'Find by slug of category.'
            example: architecto
            nullable: false
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Blog
      security: []
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the category.'
        example: architecto
        required: true
        schema:
          type: string
  /api/v1/companies:
    get:
      summary: ''
      operationId: getApiV1Companies
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Companies
      security: []
  '/api/v1/companies/{id}':
    get:
      summary: ''
      operationId: getApiV1CompaniesId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Companies
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the company.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/companies/{id}/jobs':
    get:
      summary: ''
      operationId: getApiV1CompaniesIdJobs
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Companies
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the company.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/companies/featured:
    get:
      summary: ''
      operationId: getApiV1CompaniesFeatured
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Companies
      security: []
  /api/v1/companies/search:
    get:
      summary: ''
      operationId: getApiV1CompaniesSearch
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Companies
      security: []
  /api/v1/device-tokens:
    post:
      summary: 'Register or update device token'
      operationId: registerOrUpdateDeviceToken
      description: 'Register a new device token or update an existing one for push notifications.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: 'The FCM device token.'
                  example: architecto
                  nullable: false
                platform:
                  type: string
                  description: 'The device platform (android, ios).'
                  example: architecto
                  nullable: true
                app_version:
                  type: string
                  description: 'The app version.'
                  example: architecto
                  nullable: true
                device_id:
                  type: string
                  description: 'The unique device identifier.'
                  example: architecto
                  nullable: true
                user_type:
                  type: string
                  description: 'The user type (customer, admin).'
                  example: architecto
                  nullable: true
                user_id:
                  type: integer
                  description: 'The user ID.'
                  example: 16
                  nullable: true
              required:
                - token
      security: []
    get:
      summary: "Get user's device tokens"
      operationId: getUsersDeviceTokens
      description: 'Retrieve all device tokens for the authenticated user.'
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - 'Device Tokens'
      security: []
  '/api/v1/device-tokens/{id}':
    put:
      summary: 'Update device token'
      operationId: updateDeviceToken
      description: 'Update an existing device token.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                platform:
                  type: string
                  description: 'The device platform (android, ios).'
                  example: architecto
                  nullable: false
                app_version:
                  type: string
                  description: 'The app version.'
                  example: architecto
                  nullable: false
                device_id:
                  type: string
                  description: 'The unique device identifier.'
                  example: architecto
                  nullable: false
      security: []
    delete:
      summary: 'Delete device token'
      operationId: deleteDeviceToken
      description: 'Delete a device token to stop receiving push notifications.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the device token.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/device-tokens/by-token:
    delete:
      summary: 'Delete device token by token value'
      operationId: deleteDeviceTokenByTokenValue
      description: 'Delete a device token using the token value.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
                  description: 'The FCM device token to delete.'
                  example: architecto
                  nullable: false
              required:
                - token
      security: []
  '/api/v1/device-tokens/{id}/deactivate':
    post:
      summary: 'Deactivate device token'
      operationId: deactivateDeviceToken
      description: 'Deactivate a device token without deleting it.'
      parameters: []
      responses: {  }
      tags:
        - 'Device Tokens'
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the device token.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/categories:
    get:
      summary: ''
      operationId: getApiV1Categories
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  /api/v1/tags:
    get:
      summary: ''
      operationId: getApiV1Tags
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/categories/{id}':
    get:
      summary: ''
      operationId: getApiV1CategoriesId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the category.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/categories/{id}/jobs':
    get:
      summary: ''
      operationId: getApiV1CategoriesIdJobs
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the category.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/categories/featured:
    get:
      summary: ''
      operationId: getApiV1CategoriesFeatured
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  /api/v1/job-types:
    get:
      summary: ''
      operationId: getApiV1JobTypes
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/job-types/{id}':
    get:
      summary: ''
      operationId: getApiV1JobTypesId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job type.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/job-skills:
    get:
      summary: ''
      operationId: getApiV1JobSkills
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/job-skills/{id}':
    get:
      summary: ''
      operationId: getApiV1JobSkillsId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job skill.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/job-experiences:
    get:
      summary: ''
      operationId: getApiV1JobExperiences
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/job-experiences/{id}':
    get:
      summary: ''
      operationId: getApiV1JobExperiencesId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job experience.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/career-levels:
    get:
      summary: ''
      operationId: getApiV1CareerLevels
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/career-levels/{id}':
    get:
      summary: ''
      operationId: getApiV1CareerLevelsId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the career level.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/job-shifts:
    get:
      summary: ''
      operationId: getApiV1JobShifts
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/job-shifts/{id}':
    get:
      summary: ''
      operationId: getApiV1JobShiftsId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job shift.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/functional-areas:
    get:
      summary: ''
      operationId: getApiV1FunctionalAreas
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/functional-areas/{id}':
    get:
      summary: ''
      operationId: getApiV1FunctionalAreasId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the functional area.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/tags/{id}':
    get:
      summary: ''
      operationId: getApiV1TagsId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the tag.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/tags/{id}/jobs':
    get:
      summary: ''
      operationId: getApiV1TagsIdJobs
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the tag.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/currencies:
    get:
      summary: ''
      operationId: getApiV1Currencies
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/currencies/{id}':
    get:
      summary: ''
      operationId: getApiV1CurrenciesId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the currency.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/packages:
    get:
      summary: ''
      operationId: getApiV1Packages
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/packages/{id}':
    get:
      summary: ''
      operationId: getApiV1PackagesId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the package.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/candidates:
    get:
      summary: ''
      operationId: getApiV1Candidates
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/candidates/{id}':
    get:
      summary: ''
      operationId: getApiV1CandidatesId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the candidate.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/candidates/search:
    get:
      summary: ''
      operationId: getApiV1CandidatesSearch
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  /api/v1/reviews:
    get:
      summary: ''
      operationId: getApiV1Reviews
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    post:
      summary: 'Submit a review'
      operationId: submitAReview
      description: 'Submit a review for a company or candidate. Requires authentication.'
      parameters: []
      responses: {  }
      tags:
        - Reviews
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reviewable_type:
                  type: string
                  description: 'Type of entity being reviewed (Company or Account).'
                  example: Botble\JobBoard\Models\Company
                  nullable: false
                  enum:
                    - Botble\JobBoard\Models\Company
                    - Botble\JobBoard\Models\Account
                reviewable_id:
                  type: string
                  description: 'ID of the entity being reviewed.'
                  example: 1
                  nullable: false
              required:
                - reviewable_type
                - reviewable_id
  '/api/v1/reviews/{id}':
    get:
      summary: ''
      operationId: getApiV1ReviewsId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the review.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/analytics/jobs/{id}':
    get:
      summary: ''
      operationId: getApiV1AnalyticsJobsId
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/analytics/companies/{id}':
    get:
      summary: ''
      operationId: getApiV1AnalyticsCompaniesId
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the company.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/job-applications:
    get:
      summary: ''
      operationId: getApiV1JobApplications
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Endpoints
      security: []
  '/api/v1/job-applications/{id}':
    get:
      summary: ''
      operationId: getApiV1JobApplicationsId
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Endpoints
      security: []
    put:
      summary: ''
      operationId: putApiV1JobApplicationsId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  description: 'Application status.'
                  example: approved
                  nullable: false
                  enum:
                    - pending
                    - checked
      security: []
    delete:
      summary: ''
      operationId: deleteApiV1JobApplicationsId
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job application.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/job-applications/{id}/download-cv':
    get:
      summary: ''
      operationId: getApiV1JobApplicationsIdDownloadCv
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job application.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/locations/countries:
    get:
      summary: ''
      operationId: getApiV1LocationsCountries
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
  '/api/v1/locations/states/{countryId}':
    get:
      summary: ''
      operationId: getApiV1LocationsStatesCountryId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: countryId
        description: ''
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/locations/cities/{stateId}':
    get:
      summary: ''
      operationId: getApiV1LocationsCitiesStateId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Endpoints
      security: []
    parameters:
      -
        in: path
        name: stateId
        description: ''
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/jobs:
    get:
      summary: 'List jobs'
      operationId: listJobs
      description: 'Get a paginated list of jobs with filtering options.'
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Jobs
      security: []
  '/api/v1/jobs/{id}':
    get:
      summary: ''
      operationId: getApiV1JobsId
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Jobs
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/jobs/{id}/related':
    get:
      summary: ''
      operationId: getApiV1JobsIdRelated
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Jobs
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/jobs/featured:
    get:
      summary: ''
      operationId: getApiV1JobsFeatured
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Jobs
      security: []
  /api/v1/jobs/recent:
    get:
      summary: ''
      operationId: getApiV1JobsRecent
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Jobs
      security: []
  /api/v1/jobs/popular:
    get:
      summary: ''
      operationId: getApiV1JobsPopular
      description: ''
      parameters: []
      responses:
        503:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data: null
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'API is currently disabled. Please contact the administrator to enable API access.'
                  data:
                    type: string
                    example: null
      tags:
        - Jobs
      security: []
  '/api/v1/jobs/{id}/apply':
    post:
      summary: 'Apply for a job'
      operationId: applyForAJob
      description: 'Submit an application for a specific job. Requires authentication.'
      parameters: []
      responses: {  }
      tags:
        - Jobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                job_type:
                  type: string
                  description: 'Type of job application (internal or external).'
                  example: internal
                  nullable: false
                  enum:
                    - internal
                    - external
                email:
                  type: string
                  description: "Applicant's email address. Must be a valid email address."
                  example: john.doe@example.com
                  nullable: false
                message:
                  type: string
                  description: 'Cover message or additional information. Must not be greater than 1000 characters.'
                  example: 'I am very interested in this position...'
                  nullable: true
              required:
                - email
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the job.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/languages:
    get:
      summary: 'Get list of available languages'
      operationId: getListOfAvailableLanguages
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      lang_id: 1
                      lang_name: English
                      lang_locale: en
                      lang_code: en_US
                      lang_flag: '<svg ...>'
                      lang_is_default: true
                      lang_is_rtl: false
                      lang_order: 0
                    -
                      lang_id: 2
                      lang_name: Vietnamese
                      lang_locale: vi
                      lang_code: vi
                      lang_flag: '<svg ...>'
                      lang_is_default: false
                      lang_is_rtl: false
                      lang_order: 1
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        lang_id: 1
                        lang_name: English
                        lang_locale: en
                        lang_code: en_US
                        lang_flag: '<svg ...>'
                        lang_is_default: true
                        lang_is_rtl: false
                        lang_order: 0
                      -
                        lang_id: 2
                        lang_name: Vietnamese
                        lang_locale: vi
                        lang_code: vi
                        lang_flag: '<svg ...>'
                        lang_is_default: false
                        lang_is_rtl: false
                        lang_order: 1
                    items:
                      type: object
                      properties:
                        lang_id:
                          type: integer
                          example: 1
                        lang_name:
                          type: string
                          example: English
                        lang_locale:
                          type: string
                          example: en
                        lang_code:
                          type: string
                          example: en_US
                        lang_flag:
                          type: string
                          example: '<svg ...>'
                        lang_is_default:
                          type: boolean
                          example: true
                        lang_is_rtl:
                          type: boolean
                          example: false
                        lang_order:
                          type: integer
                          example: 0
                  message:
                    type: string
                    example: null
      tags:
        - Languages
      security: []
  /api/v1/languages/current:
    get:
      summary: 'Get current language'
      operationId: getCurrentLanguage
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    lang_id: 1
                    lang_name: English
                    lang_locale: en
                    lang_code: en_US
                    lang_flag: us
                    lang_is_default: true
                    lang_is_rtl: false
                    lang_order: 0
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      lang_id:
                        type: integer
                        example: 1
                      lang_name:
                        type: string
                        example: English
                      lang_locale:
                        type: string
                        example: en
                      lang_code:
                        type: string
                        example: en_US
                      lang_flag:
                        type: string
                        example: us
                      lang_is_default:
                        type: boolean
                        example: true
                      lang_is_rtl:
                        type: boolean
                        example: false
                      lang_order:
                        type: integer
                        example: 0
                  message:
                    type: string
                    example: null
      tags:
        - Languages
      security: []
  /api/v1/notifications:
    get:
      summary: 'Get user notifications'
      operationId: getUserNotifications
      description: 'Retrieve notifications for the authenticated user.'
      parameters:
        -
          in: query
          name: page
          description: 'Page number for pagination.'
          example: 1
          required: false
          schema:
            type: integer
            description: 'Page number for pagination.'
            example: 1
            nullable: false
        -
          in: query
          name: per_page
          description: 'Number of notifications per page (max 50).'
          example: 20
          required: false
          schema:
            type: integer
            description: 'Number of notifications per page (max 50).'
            example: 20
            nullable: false
        -
          in: query
          name: unread_only
          description: 'Filter to show only unread notifications.'
          example: false
          required: false
          schema:
            type: boolean
            description: 'Filter to show only unread notifications.'
            example: false
            nullable: false
        -
          in: query
          name: type
          description: 'Filter by notification type.'
          example: general
          required: false
          schema:
            type: string
            description: 'Filter by notification type.'
            example: general
            nullable: false
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Notifications
      security: []
  /api/v1/notifications/stats:
    get:
      summary: 'Get notification statistics'
      operationId: getNotificationStatistics
      description: 'Get notification statistics for the authenticated user.'
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Notifications
      security: []
  /api/v1/notifications/mark-all-read:
    post:
      summary: 'Mark all notifications as read'
      operationId: markAllNotificationsAsRead
      description: 'Mark all notifications as read for the authenticated user.'
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
  '/api/v1/notifications/{id}/read':
    post:
      summary: 'Mark notification as read'
      operationId: markNotificationAsRead
      description: 'Mark a specific notification as read for the authenticated user.'
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the notification.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/notifications/{id}/clicked':
    post:
      summary: 'Mark notification as clicked'
      operationId: markNotificationAsClicked
      description: 'Mark a notification as clicked when user taps on it.'
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the notification.'
        example: '564'
        required: true
        schema:
          type: string
  '/api/v1/notifications/{id}':
    delete:
      summary: 'Delete notification'
      operationId: deleteNotification
      description: "Delete a notification from user's list."
      parameters: []
      responses: {  }
      tags:
        - Notifications
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the notification.'
        example: '564'
        required: true
        schema:
          type: string
  /api/v1/pages:
    get:
      summary: 'List pages'
      operationId: listPages
      description: ''
      parameters:
        -
          in: query
          name: per_page
          description: 'The number of items to return per page (default: 10).'
          example: 16
          required: false
          schema:
            type: integer
            description: 'The number of items to return per page (default: 10).'
            example: 16
            nullable: false
        -
          in: query
          name: page
          description: 'The page number to retrieve (default: 1).'
          example: 16
          required: false
          schema:
            type: integer
            description: 'The page number to retrieve (default: 1).'
            example: 16
            nullable: false
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    -
                      id: 1
                      title: 'About Us'
                      slug: about-us
                      content: 'This is the about us page content...'
                      published_at: '2023-01-01T00:00:00.000000Z'
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: array
                    example:
                      -
                        id: 1
                        title: 'About Us'
                        slug: about-us
                        content: 'This is the about us page content...'
                        published_at: '2023-01-01T00:00:00.000000Z'
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                          example: 1
                        title:
                          type: string
                          example: 'About Us'
                        slug:
                          type: string
                          example: about-us
                        content:
                          type: string
                          example: 'This is the about us page content...'
                        published_at:
                          type: string
                          example: '2023-01-01T00:00:00.000000Z'
                  message:
                    type: string
                    example: null
      tags:
        - Page
      security: []
  '/api/v1/pages/{id}':
    get:
      summary: 'Get page by ID'
      operationId: getPageByID
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    id: 1
                    title: 'About Us'
                    slug: about-us
                    content: 'This is the about us page content...'
                    published_at: '2023-01-01T00:00:00.000000Z'
                  message: null
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 1
                      title:
                        type: string
                        example: 'About Us'
                      slug:
                        type: string
                        example: about-us
                      content:
                        type: string
                        example: 'This is the about us page content...'
                      published_at:
                        type: string
                        example: '2023-01-01T00:00:00.000000Z'
                  message:
                    type: string
                    example: null
        404:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  message: 'Not found'
                properties:
                  error:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: 'Not found'
      tags:
        - Page
      security: []
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the page to retrieve.'
        example: 16
        required: true
        schema:
          type: integer
  /api/v1/me:
    get:
      summary: 'Get the user profile information.'
      operationId: getTheUserProfileInformation
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Profile
    put:
      summary: 'Update profile'
      operationId: updateProfile
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Profile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                first_name:
                  type: string
                  description: 'This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: bngz
                  nullable: true
                last_name:
                  type: string
                  description: 'This field is required when <code>name</code> is not present. Must not be greater than 120 characters. Must be at least 2 characters.'
                  example: miyv
                  nullable: true
                name:
                  type: string
                  description: Name.
                  example: architecto
                  nullable: true
                phone:
                  type: string
                  description: Phone.
                  example: architecto
                  nullable: true
                dob:
                  type: date
                  description: 'nullable Date of birth (format: Y-m-d).'
                  example: architecto
                  nullable: true
                gender:
                  type: string
                  description: 'Gender (male, female, other).'
                  example: architecto
                  nullable: true
                description:
                  type: string
                  description: Description
                  example: 'Eius et animi quos velit et.'
                  nullable: true
                email:
                  type: string
                  description: Email.
                  example: gbailey@example.net
                  nullable: true
              required:
                - name
                - phone
  /api/v1/update/avatar:
    post:
      summary: 'Update Avatar'
      operationId: updateAvatar
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Profile
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                avatar:
                  type: string
                  format: binary
                  description: 'Avatar file.'
                  nullable: false
              required:
                - avatar
  /api/v1/update/password:
    put:
      summary: 'Update password'
      operationId: updatePassword
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Profile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                password:
                  type: string
                  description: 'The new password of user.'
                  example: '|]|{+-'
                  nullable: false
                old_password:
                  type: string
                  description: 'The current password of user.'
                  example: architecto
                  nullable: false
              required:
                - password
                - old_password
  /api/v1/settings:
    get:
      summary: 'Get user settings'
      operationId: getUserSettings
      description: ''
      parameters: []
      responses:
        401:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: true
                  data: null
                  message: Unauthenticated.
                properties:
                  error:
                    type: boolean
                    example: true
                  data:
                    type: string
                    example: null
                  message:
                    type: string
                    example: Unauthenticated.
      tags:
        - Profile
    put:
      summary: 'Update user settings'
      operationId: updateUserSettings
      description: ''
      parameters: []
      responses: {  }
      tags:
        - Profile
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                biometric_enabled:
                  type: boolean
                  description: 'Enable/disable biometric authentication.'
                  example: false
                  nullable: false
                notification_enabled:
                  type: boolean
                  description: 'Enable/disable notifications.'
                  example: false
                  nullable: false
                language:
                  type: string
                  description: "User's preferred language."
                  example: architecto
                  nullable: false
                currency:
                  type: string
                  description: "User's preferred currency."
                  example: architecto
                  nullable: false
                theme:
                  type: string
                  description: "User's preferred theme (light, dark, auto)."
                  example: architecto
                  nullable: false
                timezone:
                  type: string
                  description: "User's timezone."
                  example: America/Hermosillo
                  nullable: false
  /api/v1/auth/apple:
    post:
      summary: 'Apple login'
      operationId: appleLogin
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    token: 1|abc123def456...
                    user:
                      id: 1
                      name: 'John Doe'
                      email: john@example.com
                  message: 'Login successful'
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        example: 1|abc123def456...
                      user:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 1
                          name:
                            type: string
                            example: 'John Doe'
                          email:
                            type: string
                            example: john@example.com
                  message:
                    type: string
                    example: 'Login successful'
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Invalid Apple token'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Invalid Apple token'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Cannot login, no email or Apple ID provided!'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Cannot login, no email or Apple ID provided!'
      tags:
        - 'Social Login'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                identityToken:
                  type: string
                  description: 'The Apple identity token received from Apple Sign-In.'
                  example: architecto
                  nullable: false
                guard:
                  type: string
                  description: 'optional The guard to use for authentication (default: web).'
                  example: architecto
                  nullable: false
              required:
                - identityToken
      security: []
  /api/v1/auth/google:
    post:
      summary: 'Google login'
      operationId: googleLogin
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    token: 1|abc123def456...
                    user:
                      id: 1
                      name: 'John Doe'
                      email: john@example.com
                  message: 'Login successful'
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        example: 1|abc123def456...
                      user:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 1
                          name:
                            type: string
                            example: 'John Doe'
                          email:
                            type: string
                            example: john@example.com
                  message:
                    type: string
                    example: 'Login successful'
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Invalid Google token'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Invalid Google token'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Google authentication is not properly configured'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Google authentication is not properly configured'
      tags:
        - 'Social Login'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                identityToken:
                  type: string
                  description: 'The Google identity token received from Google Sign-In.'
                  example: architecto
                  nullable: false
                guard:
                  type: string
                  description: 'optional The guard to use for authentication (default: web).'
                  example: architecto
                  nullable: false
              required:
                - identityToken
      security: []
  /api/v1/auth/facebook:
    post:
      summary: 'Facebook login'
      operationId: facebookLogin
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    token: 1|abc123def456...
                    user:
                      id: 1
                      name: 'John Doe'
                      email: john@example.com
                  message: 'Login successful'
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        example: 1|abc123def456...
                      user:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 1
                          name:
                            type: string
                            example: 'John Doe'
                          email:
                            type: string
                            example: john@example.com
                  message:
                    type: string
                    example: 'Login successful'
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Invalid Facebook token'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Invalid Facebook token'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Facebook authentication is not properly configured'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Facebook authentication is not properly configured'
      tags:
        - 'Social Login'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accessToken:
                  type: string
                  description: 'The Facebook access token received from Facebook Login.'
                  example: architecto
                  nullable: false
                guard:
                  type: string
                  description: 'optional The guard to use for authentication (default: web).'
                  example: architecto
                  nullable: false
              required:
                - accessToken
      security: []
  /api/v1/auth/x:
    post:
      summary: 'X (Twitter) login'
      operationId: xTwitterLogin
      description: ''
      parameters: []
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  error: false
                  data:
                    token: 1|abc123def456...
                    user:
                      id: 1
                      name: 'John Doe'
                      email: john@example.com
                  message: 'Login successful'
                properties:
                  error:
                    type: boolean
                    example: false
                  data:
                    type: object
                    properties:
                      token:
                        type: string
                        example: 1|abc123def456...
                      user:
                        type: object
                        properties:
                          id:
                            type: integer
                            example: 1
                          name:
                            type: string
                            example: 'John Doe'
                          email:
                            type: string
                            example: john@example.com
                  message:
                    type: string
                    example: 'Login successful'
        400:
          description: ''
          content:
            application/json:
              schema:
                oneOf:
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'Invalid X (Twitter) token'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'Invalid X (Twitter) token'
                  -
                    description: ''
                    type: object
                    example:
                      error: true
                      message: 'X (Twitter) authentication is not properly configured'
                    properties:
                      error:
                        type: boolean
                        example: true
                      message:
                        type: string
                        example: 'X (Twitter) authentication is not properly configured'
      tags:
        - 'Social Login'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                accessToken:
                  type: string
                  description: 'The X (Twitter) access token received from X OAuth.'
                  example: architecto
                  nullable: false
                guard:
                  type: string
                  description: 'optional The guard to use for authentication (default: web).'
                  example: architecto
                  nullable: false
              required:
                - accessToken
      security: []
