openapi: 3.1.0
info:
  title: 'SMR One API'
  version: 1.0.0
  description: 'Original multi-service API by SMR Softech. All authenticated operations use Laravel Sanctum bearer tokens.'
servers:
  -
    url: /api/v1
tags:
  -
    name: Authentication
  -
    name: Catalog
  -
    name: Commerce
  -
    name: Mobility
  -
    name: Services
  -
    name: Properties
  -
    name: Payments
  -
    name: Communications
  -
    name: Localization
  -
    name: Vendor
  -
    name: Platform
paths:
  /account:
    delete:
      tags:
        - Authentication
      operationId: deleteCustomerAccount
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/AccountDeletion'
      responses:
        200:
          $ref: '#/components/responses/Message'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Destroy Account'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@destroy
  /addresses:
    get:
      tags:
        - Commerce
      operationId: addressIndex4a0bbe7
      summary: 'Index Addresses'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AddressController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AddressController@index
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
    post:
      tags:
        - Commerce
      operationId: addressStoreB30421c
      summary: 'Store Addresses'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AddressController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AddressController@store
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/addresses/{address}':
    patch:
      tags:
        - Commerce
      operationId: addressUpdate11cfa9e
      summary: 'Update Addresses Address'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AddressController@update. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AddressController@update
      security:
        -
          sanctum: []
      parameters:
        -
          name: address
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Commerce
      operationId: addressDestroyA0fb9fb
      summary: 'Destroy Addresses Address'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AddressController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AddressController@destroy
      security:
        -
          sanctum: []
      parameters:
        -
          name: address
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /auth/login:
    post:
      tags:
        - Authentication
      operationId: login
      requestBody:
        $ref: '#/components/requestBodies/Auth'
      responses:
        200:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Login Auth Login'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@login. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@login
  /auth/logout:
    post:
      tags:
        - Authentication
      operationId: authLogoutF2edc65
      summary: 'Logout Auth Logout'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@logout. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@logout
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /auth/partner-register:
    post:
      tags:
        - Authentication
      operationId: partnerRegister
      requestBody:
        $ref: '#/components/requestBodies/PartnerRegistration'
      responses:
        201:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Partner Register Auth Partner Register'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@partnerRegister. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@partnerRegister
  /auth/password:
    put:
      tags:
        - Authentication
      operationId: changePassword
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/PasswordChange'
      responses:
        200:
          $ref: '#/components/responses/Message'
        401:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Change Password Auth Password'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@changePassword. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@changePassword
  /auth/password/otp:
    post:
      tags:
        - Authentication
      operationId: authRequestPasswordOtp7e3b6ca
      summary: 'Request Password Otp Auth Password Otp'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@requestPasswordOtp. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@requestPasswordOtp
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /auth/password/reset:
    post:
      tags:
        - Authentication
      operationId: authResetPassword34ab8a0
      summary: 'Reset Password Auth Password Reset'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@resetPassword. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@resetPassword
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /auth/phone/otp:
    post:
      tags:
        - Authentication
      operationId: requestPhoneLoginOtp
      requestBody:
        $ref: '#/components/requestBodies/PhoneOtpRequest'
      responses:
        200:
          $ref: '#/components/responses/Message'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
        503:
          $ref: '#/components/responses/Error'
      summary: 'Request Login Otp Auth Phone Otp'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@requestLoginOtp. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@requestLoginOtp
  /auth/phone/verify:
    post:
      tags:
        - Authentication
      operationId: verifyPhoneLoginOtp
      requestBody:
        $ref: '#/components/requestBodies/PhoneOtpVerify'
      responses:
        200:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Verify Login Otp Auth Phone Verify'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@verifyLoginOtp. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@verifyLoginOtp
  /auth/register:
    post:
      tags:
        - Authentication
      operationId: register
      requestBody:
        $ref: '#/components/requestBodies/Auth'
      responses:
        201:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Register Auth Register'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@register. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@register
  /auth/sessions:
    get:
      tags:
        - Authentication
      operationId: sessions
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
      summary: 'Sessions Auth Sessions'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@sessions. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@sessions
  '/auth/sessions/{tokenId}':
    delete:
      tags:
        - Authentication
      operationId: revokeSession
      security:
        -
          sanctum: []
      parameters:
        -
          name: tokenId
          in: path
          required: true
          schema:
            type: integer
      responses:
        200:
          $ref: '#/components/responses/Message'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Revoke Session Auth Sessions Tokenid'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@revokeSession. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@revokeSession
  /auth/social:
    post:
      tags:
        - Authentication
      operationId: socialAuthLogin103b132
      summary: 'Login Auth Social'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SocialAuthController@login. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SocialAuthController@login
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /auth/social/link:
    post:
      tags:
        - Authentication
      operationId: socialAuthLinkF941813
      summary: 'Link Auth Social Link'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SocialAuthController@link. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SocialAuthController@link
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/cancellations/{kind}/{publicId}/quote':
    get:
      tags:
        - Commerce
      operationId: cancellationPolicyQuote782ace0
      summary: 'Quote Cancellations Kind Publicid Quote'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CancellationPolicyController@quote. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CancellationPolicyController@quote
      security:
        -
          sanctum: []
      parameters:
        -
          name: kind
          in: path
          required: true
          schema:
            type: string
        -
          name: publicId
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /catalog/taxonomy:
    get:
      tags:
        - Catalog
      operationId: catalogTaxonomy
      parameters:
        -
          name: service
          in: query
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Taxonomy Catalog Taxonomy'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogController@taxonomy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogController@taxonomy
  /categories:
    get:
      tags:
        - Catalog
      operationId: categories
      responses:
        200:
          $ref: '#/components/responses/Success'
      summary: 'Categories Categories'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogController@categories. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogController@categories
  /checkouts/multi-vendor:
    post:
      tags:
        - Commerce
      operationId: createMultiVendorCheckout
      security:
        -
          sanctum: []
      parameters:
        -
          name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 100
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Store Checkouts Multi Vendor'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\MultiVendorCheckoutController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\MultiVendorCheckoutController@store
  /checkouts/multi-vendor/quote:
    post:
      tags:
        - Commerce
      operationId: quoteMultiVendorCheckout
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Quote Checkouts Multi Vendor Quote'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\MultiVendorCheckoutController@quote. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\MultiVendorCheckoutController@quote
  '/checkouts/{group}':
    get:
      tags:
        - Commerce
      operationId: multiVendorCheckout
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/CheckoutGroup'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Show Checkouts Group'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\MultiVendorCheckoutController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\MultiVendorCheckoutController@show
  /content/banners:
    get:
      tags:
        - Commerce
      operationId: contentBanners6958712
      summary: 'Banners Content Banners'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@banners. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@banners
      responses:
        200:
          $ref: '#/components/responses/Success'
  /content/faqs:
    get:
      tags:
        - Commerce
      operationId: contentFaqsD1b353a
      summary: 'Faqs Content Faqs'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@faqs. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@faqs
      responses:
        200:
          $ref: '#/components/responses/Success'
  /content/flash-campaigns:
    get:
      tags:
        - Commerce
      operationId: contentCampaignsE60adb8
      summary: 'Campaigns Content Flash Campaigns'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@campaigns. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@campaigns
      responses:
        200:
          $ref: '#/components/responses/Success'
  /content/home-sections:
    get:
      tags:
        - Catalog
      operationId: homeSections
      parameters:
        -
          name: audience
          in: query
          schema:
            type: string
            enum:
              - all
              - customer
              - vendor
              - driver
              - guest
        -
          name: service_type
          in: query
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Home Sections Content Home Sections'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@homeSections. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@homeSections
  /content/navigation:
    get:
      tags:
        - Commerce
      operationId: contentNavigationA47971d
      summary: 'Navigation Content Navigation'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@navigation. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@navigation
      responses:
        200:
          $ref: '#/components/responses/Success'
  /content/onboarding-slides:
    get:
      tags:
        - Commerce
      operationId: contentOnboardingSlides402d7c8
      summary: 'Onboarding Slides Content Onboarding Slides'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@onboardingSlides. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@onboardingSlides
      responses:
        200:
          $ref: '#/components/responses/Success'
  /content/pages:
    get:
      tags:
        - Commerce
      operationId: contentPages03a3ae6
      summary: 'Pages Content Pages'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@pages. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@pages
      parameters:
        -
          name: type
          in: query
          required: false
          schema:
            type: string
            enum:
              - page
              - legal
              - privacy
              - terms
              - refund
        -
          name: audience
          in: query
          required: false
          schema:
            type: string
            enum:
              - all
              - guest
              - customer
              - vendor
              - driver
      responses:
        200:
          $ref: '#/components/responses/Success'
  '/content/pages/{slug}':
    get:
      tags:
        - Commerce
      operationId: contentPage18bd662
      summary: 'Page Content Pages Slug'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@page. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@page
      parameters:
        -
          name: slug
          in: path
          required: true
          schema:
            type: string
        -
          name: audience
          in: query
          required: false
          schema:
            type: string
            enum:
              - all
              - guest
              - customer
              - vendor
              - driver
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
  /currencies:
    get:
      tags:
        - Localization
      operationId: currencies
      responses:
        200:
          $ref: '#/components/responses/Success'
      summary: 'Index Currencies'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CurrencyController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CurrencyController@index
  /currencies/convert:
    get:
      tags:
        - Localization
      operationId: convertCurrency
      parameters:
        -
          name: amount
          in: query
          required: true
          schema:
            type: number
            minimum: 0
        -
          name: from
          in: query
          required: true
          schema:
            type: string
            minLength: 3
            maxLength: 3
        -
          name: to
          in: query
          required: true
          schema:
            type: string
            minLength: 3
            maxLength: 3
        -
          name: at
          in: query
          schema:
            type: string
            format: date-time
      responses:
        200:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Convert Currencies Convert'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CurrencyController@convert. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CurrencyController@convert
  /devices:
    get:
      tags:
        - Communications
      operationId: communicationsDevices888ba13
      summary: 'Devices Devices'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@devices. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@devices
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
    post:
      tags:
        - Communications
      operationId: communicationsRegisterDeviceAc46962
      summary: 'Register Device Devices'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@registerDevice. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@registerDevice
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/devices/{device}':
    delete:
      tags:
        - Communications
      operationId: communicationsRevokeDevice33c5011
      summary: 'Revoke Device Devices Device'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@revokeDevice. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@revokeDevice
      security:
        -
          sanctum: []
      parameters:
        -
          name: device
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/digital-downloads/{entitlement}':
    get:
      summary: 'Download an entitled purchased digital asset'
      responses:
        200:
          description: 'Digital asset stream'
      operationId: orderFileDownloadD456305
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderFileController@download. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Commerce
      x-laravel-action: App\Http\Controllers\Api\V1\OrderFileController@download
      security:
        -
          sanctum: []
      parameters:
        -
          name: entitlement
          in: path
          required: true
          schema:
            type: string
  /dispatch/expire-offers:
    post:
      tags:
        - Mobility
      operationId: dispatchExpire9376a08
      summary: 'Expire Dispatch Expire Offers'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DispatchController@expire. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DispatchController@expire
      security:
        -
          sanctum: []
      x-required-role: admin
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/dispatch/jobs/{job}/reassign':
    post:
      tags:
        - Mobility
      operationId: dispatchReassign42171bb
      summary: 'Reassign Dispatch Jobs Job Reassign'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DispatchController@reassign. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DispatchController@reassign
      security:
        -
          sanctum: []
      x-required-role: admin
      parameters:
        -
          name: job
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/dispatch/orders/{order}':
    post:
      tags:
        - Mobility
      operationId: dispatchDispatch4cf83e0
      summary: 'Dispatch Dispatch Orders Order'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DispatchController@dispatch. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DispatchController@dispatch
      security:
        -
          sanctum: []
      x-required-role: admin
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/dispatch/parcels/{parcel}':
    post:
      tags:
        - Mobility
      operationId: dispatchDispatchParcelFc2c6cf
      summary: 'Dispatch Parcel Dispatch Parcels Parcel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DispatchController@dispatchParcel. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DispatchController@dispatchParcel
      security:
        -
          sanctum: []
      x-required-role: admin
      parameters:
        -
          name: parcel
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/dispatch/rides/{ride}':
    post:
      tags:
        - Mobility
      operationId: rideOperationsAssignE3fb88a
      summary: 'Assign Dispatch Rides Ride'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideOperationsController@assign. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideOperationsController@assign
      security:
        -
          sanctum: []
      x-required-role: admin
      parameters:
        -
          name: ride
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /driver-safety/documents:
    get:
      tags:
        - Mobility
      operationId: driverSafetyDocumentsFe0f56b
      summary: 'Documents Driver Safety Documents'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@documents. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@documents
      security:
        -
          sanctum: []
      x-required-role: driver
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    post:
      tags:
        - Mobility
      operationId: driverSafetyUploadDocumentBfd983f
      summary: 'Upload Document Driver Safety Documents'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@uploadDocument. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@uploadDocument
      security:
        -
          sanctum: []
      x-required-role: driver
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/driver-safety/documents/{document}/download':
    get:
      tags:
        - Mobility
      operationId: driverSafetyDownloadDocument4965971
      summary: 'Download Document Driver Safety Documents Document Download'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@downloadDocument. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@downloadDocument
      security:
        -
          sanctum: []
      x-required-role: driver
      parameters:
        -
          name: document
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /driver-safety/emergency-contact:
    get:
      tags:
        - Mobility
      operationId: driverSafetyContact1d0e19c
      summary: 'Contact Driver Safety Emergency Contact'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@contact. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@contact
      security:
        -
          sanctum: []
      x-required-role: driver
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    put:
      tags:
        - Mobility
      operationId: driverSafetySaveContact71c2e8f
      summary: 'Save Contact Driver Safety Emergency Contact'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@saveContact. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@saveContact
      security:
        -
          sanctum: []
      x-required-role: driver
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /driver-safety/incidents:
    get:
      tags:
        - Mobility
      operationId: driverSafetyIncidentsA2e77a5
      summary: 'Incidents Driver Safety Incidents'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@incidents. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@incidents
      security:
        -
          sanctum: []
      x-required-role: driver
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    post:
      tags:
        - Mobility
      operationId: driverSafetySos0d4177c
      summary: 'Sos Driver Safety Incidents'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@sos. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@sos
      security:
        -
          sanctum: []
      x-required-role: driver
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/driver-safety/incidents/{incident}':
    get:
      tags:
        - Mobility
      operationId: driverSafetyIncidentF1ee0ae
      summary: 'Incident Driver Safety Incidents Incident'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@incident. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@incident
      security:
        -
          sanctum: []
      x-required-role: driver
      parameters:
        -
          name: incident
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/driver-safety/jobs/{job}/proof':
    post:
      tags:
        - Mobility
      operationId: captureDeliveryProof
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Job'
      requestBody:
        $ref: '#/components/requestBodies/DeliveryProof'
      responses:
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Proof Driver Safety Jobs Job Proof'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@proof. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@proof
  /driver-safety/vehicles:
    get:
      tags:
        - Mobility
      operationId: driverVehicles
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Vehicles Driver Safety Vehicles'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@vehicles. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@vehicles
    post:
      tags:
        - Mobility
      operationId: createDriverVehicle
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/DriverVehicle'
      responses:
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Store Vehicle Driver Safety Vehicles'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@storeVehicle. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@storeVehicle
  '/driver-safety/vehicles/{vehicle}':
    put:
      tags:
        - Mobility
      operationId: updateDriverVehicle
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Vehicle'
      requestBody:
        $ref: '#/components/requestBodies/DriverVehicle'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Update Vehicle Driver Safety Vehicles Vehicle'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@updateVehicle. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@updateVehicle
    delete:
      tags:
        - Mobility
      operationId: deleteDriverVehicle
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Vehicle'
      responses:
        204:
          description: 'Vehicle deleted'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Delete Vehicle Driver Safety Vehicles Vehicle'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSafetyController@deleteVehicle. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSafetyController@deleteVehicle
  /driver/availability:
    put:
      tags:
        - Mobility
      operationId: driverWorkspaceAvailability7103761
      summary: 'Availability Driver Availability'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@availability. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@availability
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /driver/cash:
    get:
      tags:
        - Mobility
      operationId: cashRemittanceSummary8c5608e
      summary: 'Summary Driver Cash'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CashRemittanceController@summary. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CashRemittanceController@summary
      security:
        -
          sanctum: []
      x-required-role: driver
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  '/driver/cash/obligations/{obligation}/acknowledge':
    post:
      tags:
        - Mobility
      operationId: cashRemittanceAcknowledge179fafc
      summary: 'Acknowledge Driver Cash Obligations Obligation Acknowledge'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CashRemittanceController@acknowledge. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CashRemittanceController@acknowledge
      security:
        -
          sanctum: []
      x-required-role: driver
      parameters:
        -
          name: obligation
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /driver/cash/remittances:
    get:
      tags:
        - Mobility
      operationId: cashRemittanceIndex3adfbbf
      summary: 'Index Driver Cash Remittances'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CashRemittanceController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CashRemittanceController@index
      security:
        -
          sanctum: []
      x-required-role: driver
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    post:
      tags:
        - Mobility
      operationId: cashRemittanceStoreCb9ea41
      summary: 'Store Driver Cash Remittances'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CashRemittanceController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CashRemittanceController@store
      security:
        -
          sanctum: []
      x-required-role: driver
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/driver/cash/remittances/{remittance}':
    get:
      tags:
        - Mobility
      operationId: cashRemittanceShowE77a6f1
      summary: 'Show Driver Cash Remittances Remittance'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CashRemittanceController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CashRemittanceController@show
      security:
        -
          sanctum: []
      x-required-role: driver
      parameters:
        -
          name: remittance
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/driver/cash/remittances/{remittance}/proof':
    get:
      tags:
        - Mobility
      operationId: cashRemittanceProof4ef76ac
      summary: 'Proof Driver Cash Remittances Remittance Proof'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CashRemittanceController@proof. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CashRemittanceController@proof
      security:
        -
          sanctum: []
      x-required-role: driver
      parameters:
        -
          name: remittance
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /driver/earnings:
    get:
      tags:
        - Mobility
      operationId: driverWorkspaceEarnings277efe6
      summary: 'Earnings Driver Earnings'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@earnings. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@earnings
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  /driver/earnings/export:
    get:
      tags:
        - Mobility
      operationId: driverWorkspaceEarningsExport6845e1f
      summary: 'Earnings Export Driver Earnings Export'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@earningsExport. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@earningsExport
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /driver/jobs:
    get:
      tags:
        - Mobility
      operationId: driverWorkspaceJobs484e27e
      summary: 'Jobs Driver Jobs'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@jobs. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@jobs
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  '/driver/jobs/{job}':
    get:
      tags:
        - Mobility
      operationId: driverWorkspaceJob35bf506
      summary: 'Job Driver Jobs Job'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@job. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@job
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      parameters:
        -
          name: job
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/driver/jobs/{job}/scan-verification':
    post:
      tags:
        - Mobility
      operationId: verifyDeliveryQr
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Job'
      requestBody:
        $ref: '#/components/requestBodies/DeliveryScan'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Scan Verification Driver Jobs Job Scan Verification'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@scanVerification. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@scanVerification
  '/driver/jobs/{job}/stops/{stop}/transition':
    post:
      tags:
        - Mobility
      operationId: transitionParcelStop
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Job'
        -
          $ref: '#/components/parameters/Stop'
      requestBody:
        $ref: '#/components/requestBodies/ParcelStopTransition'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Transition Stop Driver Jobs Job Stops Stop Transition'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@transitionStop. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@transitionStop
  '/driver/jobs/{job}/transition':
    post:
      tags:
        - Mobility
      operationId: transitionDeliveryJob
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Job'
      requestBody:
        $ref: '#/components/requestBodies/DeliveryTransition'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Transition Driver Jobs Job Transition'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@transition. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@transition
  /driver/location:
    post:
      tags:
        - Mobility
      operationId: publishDriverAvailabilityLocation
      summary: 'Publish the current location of an approved online driver'
      description: 'Requires an approved driver profile, online availability, explicit device permission and bearer authentication. Requests are limited to 20 per minute.'
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - latitude
                - longitude
              properties:
                latitude:
                  type: number
                  minimum: -90
                  maximum: 90
                longitude:
                  type: number
                  minimum: -180
                  maximum: 180
                heading:
                  type: number
                  minimum: 0
                  maximum: 360
                speed:
                  type: number
                  minimum: 0
                accuracy:
                  type: number
                  minimum: 0
      responses:
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@location
  /driver/offers:
    get:
      tags:
        - Mobility
      operationId: driverOffers
      summary: 'Poll unexpired delivery and ride offers assigned to the online driver'
      description: 'Returns server time for authoritative countdown correction and performs idempotent stale-offer recovery before responding.'
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@offers
  /driver/onboard:
    post:
      tags:
        - Mobility
      operationId: driverWorkspaceOnboard0bd9a9a
      summary: 'Onboard Driver Onboard'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@onboard. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@onboard
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /driver/rides:
    get:
      tags:
        - Mobility
      operationId: rideOperationsDriverRides5ea7780
      summary: 'Driver Rides Driver Rides'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideOperationsController@driverRides. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideOperationsController@driverRides
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  '/driver/rides/{ride}':
    get:
      tags:
        - Mobility
      operationId: driverRideWorkspace
      summary: 'Read an owned privacy-shaped taxi trip workspace'
      description: 'Passenger name and phone are returned only while the owned ride is accepted, arrived, or in progress; contact is removed before acceptance and after closure.'
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      x-laravel-action: App\Http\Controllers\Api\V1\RideOperationsController@driverRide
      parameters:
        -
          name: ride
          in: path
          required: true
          schema:
            type: string
  '/driver/rides/{ride}/transition':
    post:
      tags:
        - Mobility
      operationId: rideOperationsTransition8c6fb67
      summary: 'Transition Driver Rides Ride Transition'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideOperationsController@transition. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideOperationsController@transition
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      parameters:
        -
          name: ride
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /driver/subscriptions:
    get:
      tags:
        - Payments
      operationId: driverSubscriptions
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
      summary: 'Index Driver Subscriptions'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSubscriptionController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSubscriptionController@index
  '/driver/subscriptions/plans/{plan}/purchase':
    post:
      tags:
        - Payments
      operationId: purchaseDriverSubscription
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/SubscriptionPlan'
        -
          name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Purchase Driver Subscriptions Plans Plan Purchase'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverSubscriptionController@purchase. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverSubscriptionController@purchase
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  /driver/workspace:
    get:
      tags:
        - Mobility
      operationId: driverWorkspaceShow4a42ef0
      summary: 'Show Driver Workspace'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DriverWorkspaceController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DriverWorkspaceController@show
      security:
        -
          sanctum: []
      x-required-role: 'driver,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  /favourites:
    get:
      tags:
        - Catalog
      operationId: favourites
      security:
        -
          sanctum: []
      parameters:
        -
          name: type
          in: query
          schema:
            type: string
            enum:
              - vendor
              - product
              - service
              - property
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Index Favourites'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FavouriteController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FavouriteController@index
  '/favourites/{type}/{identifier}':
    put:
      tags:
        - Catalog
      operationId: saveFavourite
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/FavouriteType'
        -
          $ref: '#/components/parameters/FavouriteIdentifier'
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Store Favourites Type Identifier'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FavouriteController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FavouriteController@store
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
    delete:
      tags:
        - Catalog
      operationId: removeFavourite
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/FavouriteType'
        -
          $ref: '#/components/parameters/FavouriteIdentifier'
      responses:
        200:
          $ref: '#/components/responses/Message'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Destroy Favourites Type Identifier'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FavouriteController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FavouriteController@destroy
  /finance:
    get:
      tags:
        - Payments
      operationId: financePortalSummary7bcd444
      summary: 'Summary Finance'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@summary. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@summary
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  /finance/accounts:
    post:
      tags:
        - Payments
      operationId: financePortalAccountB149bd0
      summary: 'Account Finance Accounts'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@account. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@account
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/finance/accounts/{account}':
    delete:
      tags:
        - Payments
      operationId: financePortalDeleteAccount226b094
      summary: 'Delete Account Finance Accounts Account'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@deleteAccount. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@deleteAccount
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      parameters:
        -
          name: account
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /finance/payouts:
    post:
      tags:
        - Payments
      operationId: financePortalRequestPayoutE6d0b43
      summary: 'Request Payout Finance Payouts'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@requestPayout. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@requestPayout
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/finance/payouts/{payout}':
    get:
      tags:
        - Payments
      operationId: financePortalPayout6405ddf
      summary: 'Payout Finance Payouts Payout'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@payout. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@payout
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      parameters:
        -
          name: payout
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /finance/reports/vendor:
    get:
      tags:
        - Payments
      operationId: financePortalVendorReport6af66dc
      summary: 'Vendor Report Finance Reports Vendor'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@vendorReport. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@vendorReport
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  /finance/reports/vendor.csv:
    get:
      tags:
        - Payments
      operationId: financePortalVendorReportCsvAa9b1c7
      summary: 'Vendor Report Csv Finance Reports Vendor.csv'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@vendorReportCsv. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@vendorReportCsv
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/finance/settlements/{settlement}':
    get:
      tags:
        - Payments
      operationId: financePortalSettlement00e9138
      summary: 'Settlement Finance Settlements Settlement'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@settlement. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@settlement
      security:
        -
          sanctum: []
      x-required-role: 'vendor,driver'
      parameters:
        -
          name: settlement
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /finance/wallet:
    get:
      tags:
        - Payments
      operationId: vendorWalletStatement
      security:
        -
          sanctum: []
      parameters:
        -
          name: currency
          in: query
          schema:
            type: string
            minLength: 3
            maxLength: 3
        -
          name: kind
          in: query
          schema:
            type: string
            enum:
              - settlement
              - payout
        -
          name: from
          in: query
          schema:
            type: string
            format: date
        -
          name: to
          in: query
          schema:
            type: string
            format: date
        -
          $ref: '#/components/parameters/Page'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Wallet Finance Wallet'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@wallet. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@wallet
  '/finance/wallet/transactions/{kind}/{publicId}':
    get:
      tags:
        - Payments
      operationId: vendorWalletTransaction
      security:
        -
          sanctum: []
      parameters:
        -
          name: kind
          in: path
          required: true
          schema:
            type: string
            enum:
              - settlement
              - payout
        -
          name: publicId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Wallet Transaction Finance Wallet Transactions Kind Publicid'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\FinancePortalController@walletTransaction. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\FinancePortalController@walletTransaction
  /geocoding/reverse:
    get:
      tags:
        - Localization
      operationId: reverseGeocodeAddress
      summary: 'Resolve a customer-selected map pin and current service coverage'
      security:
        -
          sanctum: []
      parameters:
        -
          name: latitude
          in: query
          required: true
          schema:
            type: number
            minimum: -90
            maximum: 90
        -
          name: longitude
          in: query
          required: true
          schema:
            type: number
            minimum: -180
            maximum: 180
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
        503:
          $ref: '#/components/responses/Error'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\GeographyController@reverseGeocode. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\GeographyController@reverseGeocode
  /geocoding/search:
    get:
      tags:
        - Localization
      operationId: searchAddresses
      summary: 'Search and normalize mapped addresses through the configured server provider'
      description: 'The Google Maps server credential remains encrypted and is never returned to mobile clients. Results include current SMR One service coverage.'
      security:
        -
          sanctum: []
      parameters:
        -
          name: query
          in: query
          required: true
          schema:
            type: string
            minLength: 3
            maxLength: 190
        -
          name: country
          in: query
          schema:
            type: string
            minLength: 2
            maxLength: 2
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
        503:
          $ref: '#/components/responses/Error'
      x-laravel-action: App\Http\Controllers\Api\V1\GeographyController@geocode
  /geography:
    get:
      tags:
        - Commerce
      operationId: geographyIndexE5020cd
      summary: 'Index Geography'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\GeographyController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\GeographyController@index
      responses:
        200:
          $ref: '#/components/responses/Success'
  /localization:
    get:
      tags:
        - Localization
      operationId: localizationIndex0dd29cf
      summary: 'Index Localization'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\LocalizationController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\LocalizationController@index
      responses:
        200:
          $ref: '#/components/responses/Success'
  /loyalty:
    get:
      tags:
        - Payments
      operationId: loyaltyAccount
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Page'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
      summary: 'Show Loyalty'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\LoyaltyController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\LoyaltyController@show
  /loyalty/redemptions:
    post:
      tags:
        - Payments
      operationId: redeemLoyaltyPoints
      security:
        -
          sanctum: []
      parameters:
        -
          name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - points
                - currency
              properties:
                points:
                  type: integer
                  minimum: 1
                currency:
                  type: string
                  minLength: 3
                  maxLength: 3
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Redeem Loyalty Redemptions'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\LoyaltyController@redeem. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\LoyaltyController@redeem
  /me:
    get:
      tags:
        - Authentication
      operationId: me
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
      summary: 'Me Me'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\AuthController@me. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\AuthController@me
  /notification-preferences:
    get:
      tags:
        - Commerce
      operationId: communicationsPreferencesF41c350
      summary: 'Preferences Notification Preferences'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@preferences. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@preferences
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
    put:
      tags:
        - Commerce
      operationId: communicationsUpdatePreferences8b2e4a6
      summary: 'Update Preferences Notification Preferences'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@updatePreferences. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@updatePreferences
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /notification-sounds:
    get:
      tags:
        - Commerce
      operationId: communicationsSounds3a16fa6
      summary: 'Sounds Notification Sounds'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@sounds. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@sounds
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
  /notifications:
    get:
      tags:
        - Communications
      operationId: notifications
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Notifications Notifications'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@notifications. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@notifications
  /notifications/read-all:
    patch:
      tags:
        - Communications
      operationId: communicationsReadAllA635d48
      summary: 'Read All Notifications Read All'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@readAll. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@readAll
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/notifications/{notification}/read':
    patch:
      tags:
        - Communications
      operationId: communicationsRead88a2065
      summary: 'Read Notifications Notification Read'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CommunicationsController@read. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CommunicationsController@read
      security:
        -
          sanctum: []
      parameters:
        -
          name: notification
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /onboarding:
    get:
      tags:
        - Authentication
      operationId: onboardingConfiguration
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
      summary: 'Onboarding Onboarding'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\LocalizationController@onboarding. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\LocalizationController@onboarding
    put:
      tags:
        - Authentication
      operationId: completeOnboarding
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Onboarding'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Complete Onboarding Onboarding'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\LocalizationController@completeOnboarding. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\LocalizationController@completeOnboarding
  '/order-attachments/{attachment}':
    get:
      summary: 'Download an owned private order attachment'
      responses:
        200:
          description: 'Attachment stream'
      operationId: orderFileAttachment80018d8
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderFileController@attachment. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Commerce
      x-laravel-action: App\Http\Controllers\Api\V1\OrderFileController@attachment
      security:
        -
          sanctum: []
      parameters:
        -
          name: attachment
          in: path
          required: true
          schema:
            type: string
  /orders:
    get:
      tags:
        - Commerce
      operationId: orders
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Page'
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Index Orders'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderController@index
    post:
      tags:
        - Commerce
      operationId: createOrder
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Store Orders'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderController@store
  '/orders/{order}':
    get:
      tags:
        - Commerce
      operationId: order
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Order'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Show Orders Order'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderController@show
  '/orders/{order}/attachments':
    post:
      summary: 'Upload a private customer order attachment'
      responses:
        201:
          description: 'Attachment created'
      operationId: orderFileStore9e934d8
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderFileController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Commerce
      x-laravel-action: App\Http\Controllers\Api\V1\OrderFileController@store
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
  '/orders/{order}/cancel':
    post:
      tags:
        - Commerce
      operationId: orderCancel955b94a
      summary: 'Cancel Orders Order Cancel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderController@cancel. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderController@cancel
      security:
        -
          sanctum: []
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/orders/{order}/delivery-proof/photo':
    get:
      tags:
        - Commerce
      operationId: customerDeliveryProofPhoto
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Order'
      responses:
        200:
          description: 'Private delivery photo'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Delivery Proof Photo Orders Order Delivery Proof Photo'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderController@deliveryProofPhoto. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderController@deliveryProofPhoto
  '/orders/{order}/files':
    get:
      summary: 'List private order attachments and purchased digital entitlements'
      responses:
        200:
          description: 'Order files'
      operationId: orderFileIndexA54fabd
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderFileController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Commerce
      x-laravel-action: App\Http\Controllers\Api\V1\OrderFileController@index
      security:
        -
          sanctum: []
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
  '/orders/{order}/reschedule':
    post:
      tags:
        - Commerce
      operationId: orderScheduleRescheduleB62bd0e
      summary: 'Reschedule Orders Order Reschedule'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderScheduleController@reschedule. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderScheduleController@reschedule
      security:
        -
          sanctum: []
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /parcels:
    get:
      tags:
        - Mobility
      operationId: parcels
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Index Parcels'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelController@index
    post:
      tags:
        - Mobility
      operationId: createParcel
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
      summary: 'Store Parcels'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelController@store
  /parcels/package-types:
    get:
      tags:
        - Commerce
      operationId: parcelTypesD3973aa
      summary: 'Types Parcels Package Types'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelController@types. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelController@types
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
  /parcels/quotes:
    post:
      tags:
        - Commerce
      operationId: parcelQuote60d7be5
      summary: 'Quote Parcels Quotes'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelController@quote. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelController@quote
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/parcels/{parcel}':
    get:
      tags:
        - Commerce
      operationId: parcelShowDdf7e63
      summary: 'Show Parcels Parcel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelController@show
      security:
        -
          sanctum: []
      parameters:
        -
          name: parcel
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/parcels/{parcel}/cancel':
    post:
      tags:
        - Commerce
      operationId: parcelCancel942acca
      summary: 'Cancel Parcels Parcel Cancel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelController@cancel. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelController@cancel
      security:
        -
          sanctum: []
      parameters:
        -
          name: parcel
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /payment-disputes:
    get:
      tags:
        - Commerce
      operationId: paymentDisputeIndex12b527d
      summary: 'Index Payment Disputes'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentDisputeController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentDisputeController@index
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
  '/payment-disputes/{dispute}':
    get:
      tags:
        - Commerce
      operationId: paymentDisputeShow95ffed9
      summary: 'Show Payment Disputes Dispute'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentDisputeController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentDisputeController@show
      security:
        -
          sanctum: []
      parameters:
        -
          name: dispute
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/payment-disputes/{dispute}/reply':
    post:
      tags:
        - Commerce
      operationId: paymentDisputeReplyB9d076e
      summary: 'Reply Payment Disputes Dispute Reply'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentDisputeController@reply. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentDisputeController@reply
      security:
        -
          sanctum: []
      parameters:
        -
          name: dispute
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /payments/gateways:
    get:
      tags:
        - Payments
      operationId: gateways
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
      summary: 'Gateways Payments Gateways'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@gateways. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@gateways
  /payments/intents:
    post:
      tags:
        - Payments
      operationId: paymentIntent
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
      summary: 'Store Payments Intents'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@store
  '/payments/intents/{intent}':
    get:
      tags:
        - Payments
      operationId: paymentShowC7894d7
      summary: 'Show Payments Intents Intent'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@show
      security:
        -
          sanctum: []
      parameters:
        -
          name: intent
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/payments/intents/{intent}/disputes':
    post:
      tags:
        - Payments
      operationId: paymentDisputeStore2a28d22
      summary: 'Store Payments Intents Intent Disputes'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentDisputeController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentDisputeController@store
      security:
        -
          sanctum: []
      parameters:
        -
          name: intent
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/payments/intents/{intent}/proof':
    post:
      tags:
        - Payments
      operationId: paymentSubmitProof0061782
      summary: 'Submit Proof Payments Intents Intent Proof'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@submitProof. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@submitProof
      security:
        -
          sanctum: []
      parameters:
        -
          name: intent
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    get:
      tags:
        - Payments
      operationId: paymentProofDocument47de9f3
      summary: 'Proof Document Payments Intents Intent Proof'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@proofDocument. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@proofDocument
      security:
        -
          sanctum: []
      parameters:
        -
          name: intent
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/payments/intents/{intent}/review':
    post:
      tags:
        - Payments
      operationId: paymentReviewEbc39b4
      summary: 'Review Payments Intents Intent Review'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@review. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@review
      security:
        -
          sanctum: []
      x-required-role: admin
      parameters:
        -
          name: intent
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/payments/payu/{intent}':
    get:
      tags:
        - Payments
      operationId: paymentPayuLaunch1cfeabb
      summary: 'Payu Launch Payments Payu Intent'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@payuLaunch. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@payuLaunch
      parameters:
        -
          name: intent
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
  '/payments/return/{intent}':
    get:
      tags:
        - Payments
      operationId: paymentPaymentReturn89a36ea
      summary: 'Payment Return Payments Return Intent'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentController@paymentReturn. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentController@paymentReturn
      parameters:
        -
          name: intent
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
  '/payments/webhooks/{gateway}':
    post:
      tags:
        - Payments
      operationId: paymentWebhookHandleCcd2d99
      summary: 'Handle Payments Webhooks Gateway'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PaymentWebhookController@handle. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PaymentWebhookController@handle
      parameters:
        -
          name: gateway
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /payouts/webhook:
    post:
      tags:
        - Commerce
      operationId: payoutWebhookHandle96d81d7
      summary: 'Handle Payouts Webhook'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PayoutWebhookController@handle. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PayoutWebhookController@handle
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /platform:
    get:
      tags:
        - Catalog
      operationId: platform
      responses:
        200:
          $ref: '#/components/responses/Success'
      summary: 'Show Platform'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PlatformController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PlatformController@show
  /preferences:
    get:
      tags:
        - Commerce
      operationId: localizationPreferencesFfdf84a
      summary: 'Preferences Preferences'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\LocalizationController@preferences. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\LocalizationController@preferences
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
    put:
      tags:
        - Commerce
      operationId: localizationUpdate282c3cc
      summary: 'Update Preferences'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\LocalizationController@update. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\LocalizationController@update
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /prescriptions:
    post:
      tags:
        - Commerce
      operationId: prescriptionStore6a5978c
      summary: 'Store Prescriptions'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@store
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    get:
      tags:
        - Commerce
      operationId: prescriptionIndexBd897f4
      summary: 'Index Prescriptions'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@index
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
  '/prescriptions/{prescription}':
    get:
      tags:
        - Commerce
      operationId: prescriptionShow3bd8cce
      summary: 'Show Prescriptions Prescription'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@show
      security:
        -
          sanctum: []
      parameters:
        -
          name: prescription
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/prescriptions/{prescription}/accept':
    post:
      tags:
        - Commerce
      operationId: prescriptionAccept7bd110d
      summary: 'Accept Prescriptions Prescription Accept'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@accept. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@accept
      security:
        -
          sanctum: []
      parameters:
        -
          name: prescription
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/prescriptions/{prescription}/document':
    get:
      tags:
        - Commerce
      operationId: prescriptionDocumentC50ff2a
      summary: 'Document Prescriptions Prescription Document'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@document. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@document
      security:
        -
          sanctum: []
      parameters:
        -
          name: prescription
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /products:
    get:
      tags:
        - Catalog
      operationId: products
      parameters:
        -
          $ref: '#/components/parameters/Page'
        -
          name: vendor_id
          in: query
          schema:
            type: integer
        -
          name: category_id
          in: query
          schema:
            type: integer
        -
          name: brand_id
          in: query
          schema:
            type: integer
        -
          name: tag_id
          in: query
          schema:
            type: integer
        -
          name: q
          in: query
          schema:
            type: string
            maxLength: 120
        -
          name: min_price
          in: query
          schema:
            type: number
            minimum: 0
        -
          name: max_price
          in: query
          schema:
            type: number
            minimum: 0
        -
          name: sort
          in: query
          schema:
            type: string
            enum:
              - newest
              - price_low
              - price_high
              - name
      responses:
        200:
          $ref: '#/components/responses/Paginated'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Products Products'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogController@products. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogController@products
  '/products/{product}':
    get:
      tags:
        - Catalog
      operationId: productConfiguration
      parameters:
        -
          $ref: '#/components/parameters/Product'
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Product Products Product'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogController@product. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogController@product
  '/products/{product}/recommendations':
    get:
      tags:
        - Catalog
      operationId: productRecommendations
      parameters:
        -
          $ref: '#/components/parameters/Product'
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Recommendations Products Product Recommendations'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogController@recommendations. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogController@recommendations
  /properties:
    get:
      tags:
        - Properties
      operationId: properties
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Index Properties'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@index
  /properties/configuration:
    get:
      tags:
        - Properties
      operationId: propertyConfiguration
      responses:
        200:
          $ref: '#/components/responses/Success'
      summary: 'Configuration Properties Configuration'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@configuration. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@configuration
  '/properties/{property}':
    get:
      tags:
        - Properties
      operationId: propertyShow6b9231c
      summary: 'Show Properties Property'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@show
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
  '/properties/{property}/availability':
    get:
      tags:
        - Properties
      operationId: propertyAvailability080b26b
      summary: 'Availability Properties Property Availability'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@availability. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@availability
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/properties/{property}/book':
    post:
      tags:
        - Properties
      operationId: propertyBookD5df8d8
      summary: 'Book Properties Property Book'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@book. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@book
      security:
        -
          sanctum: []
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/properties/{property}/enquire':
    post:
      tags:
        - Properties
      operationId: propertyEnquire75a2b82
      summary: 'Enquire Properties Property Enquire'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@enquire. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@enquire
      security:
        -
          sanctum: []
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/properties/{property}/favourite':
    post:
      tags:
        - Properties
      operationId: propertyFavourite589ec68
      summary: 'Favourite Properties Property Favourite'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@favourite. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@favourite
      security:
        -
          sanctum: []
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/properties/{property}/report':
    post:
      tags:
        - Properties
      operationId: propertyReportF731014
      summary: 'Report Properties Property Report'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@report. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@report
      security:
        -
          sanctum: []
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /property-bookings:
    get:
      tags:
        - Commerce
      operationId: propertyMine92b2b8e
      summary: 'Mine Property Bookings'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@mine. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@mine
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
  '/property-bookings/{booking}/cancel':
    post:
      tags:
        - Commerce
      operationId: propertyCancel258d0fe
      summary: 'Cancel Property Bookings Booking Cancel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@cancel. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@cancel
      security:
        -
          sanctum: []
      parameters:
        -
          name: booking
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/property-media/{media}':
    get:
      tags:
        - Commerce
      operationId: propertyMedia91c95b6
      summary: 'Media Property Media Media'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@media. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@media
      security:
        -
          sanctum: []
      parameters:
        -
          name: media
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /reviews:
    get:
      tags:
        - Commerce
      operationId: contentReviews0a1871e
      summary: 'Reviews Reviews'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@reviews. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@reviews
      responses:
        200:
          $ref: '#/components/responses/Success'
    post:
      tags:
        - Commerce
      operationId: contentStoreReview700b678
      summary: 'Store Review Reviews'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ContentController@storeReview. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ContentController@storeReview
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /rides:
    get:
      tags:
        - Mobility
      operationId: rides
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Index Rides'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideController@index
    post:
      tags:
        - Mobility
      operationId: bookRide
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
      summary: 'Store Rides'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideController@store
  /rides/quotes:
    post:
      tags:
        - Mobility
      operationId: rideQuote
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Quote Rides Quotes'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideController@quote. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideController@quote
  /rides/vehicle-types:
    get:
      tags:
        - Mobility
      operationId: rideTypes
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
      summary: 'Vehicle Types Rides Vehicle Types'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideController@vehicleTypes. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideController@vehicleTypes
  '/rides/{ride}':
    get:
      tags:
        - Mobility
      operationId: ride
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Ride'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Show Rides Ride'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideController@show
  '/rides/{ride}/cancel':
    post:
      tags:
        - Mobility
      operationId: cancelRide
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Ride'
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Cancel Rides Ride Cancel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideController@cancel. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideController@cancel
  '/rides/{ride}/sos':
    post:
      tags:
        - Mobility
      operationId: passengerRideSos
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Ride'
      requestBody:
        $ref: '#/components/requestBodies/RideSos'
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Sos Rides Ride Sos'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\RideController@sos. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\RideController@sos
  /service-bookings:
    post:
      tags:
        - Services
      operationId: bookService
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
      summary: 'Book Service Bookings'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ServiceBookingController@book. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ServiceBookingController@book
    get:
      tags:
        - Services
      operationId: serviceBookingMine6b740b3
      summary: 'Mine Service Bookings'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ServiceBookingController@mine. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ServiceBookingController@mine
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
  '/service-bookings/{booking}/cancel':
    post:
      tags:
        - Services
      operationId: serviceBookingCancel2987e98
      summary: 'Cancel Service Bookings Booking Cancel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ServiceBookingController@cancel. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ServiceBookingController@cancel
      security:
        -
          sanctum: []
      parameters:
        -
          name: booking
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/service-bookings/{booking}/reschedule':
    post:
      tags:
        - Services
      operationId: serviceBookingReschedule31cccca
      summary: 'Reschedule Service Bookings Booking Reschedule'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ServiceBookingController@reschedule. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ServiceBookingController@reschedule
      security:
        -
          sanctum: []
      parameters:
        -
          name: booking
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/service-bookings/{booking}/verification':
    get:
      tags:
        - Services
      operationId: serviceBookingVerification52beedb
      summary: 'Verification Service Bookings Booking Verification'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ServiceBookingController@verification. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ServiceBookingController@verification
      security:
        -
          sanctum: []
      parameters:
        -
          name: booking
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /serviceability:
    get:
      tags:
        - Commerce
      operationId: geographyServiceabilityA057f5c
      summary: 'Serviceability Serviceability'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\GeographyController@serviceability. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\GeographyController@serviceability
      responses:
        200:
          $ref: '#/components/responses/Success'
        429:
          $ref: '#/components/responses/Error'
  /services:
    get:
      tags:
        - Services
      operationId: services
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Index Services'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ServiceBookingController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ServiceBookingController@index
  '/services/{service}':
    get:
      tags:
        - Services
      operationId: serviceBookingShow6cee60d
      summary: 'Show Services Service'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ServiceBookingController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ServiceBookingController@show
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
  '/share-links/{type}/{identifier}':
    get:
      tags:
        - Platform
      operationId: shareLink
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/ShareType'
        -
          $ref: '#/components/parameters/ShareIdentifier'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Show Share Links Type Identifier'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ShareLinkController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\ShareLinkController@show
  /support/conversations:
    get:
      tags:
        - Communications
      operationId: supportConversations
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Index Support Conversations'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SupportController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SupportController@index
    post:
      tags:
        - Communications
      operationId: createSupportConversation
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
      summary: 'Store Support Conversations'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SupportController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SupportController@store
  '/support/conversations/{conversation}':
    get:
      tags:
        - Communications
      operationId: supportConversation
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Conversation'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Show Support Conversations Conversation'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SupportController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SupportController@show
  '/support/conversations/{conversation}/events':
    get:
      tags:
        - Communications
      operationId: supportEvents650d8cf
      summary: 'Events Support Conversations Conversation Events'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SupportController@events. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SupportController@events
      security:
        -
          sanctum: []
      parameters:
        -
          name: conversation
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/support/conversations/{conversation}/messages':
    post:
      tags:
        - Communications
      operationId: createSupportMessage
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Conversation'
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Message Support Conversations Conversation Messages'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SupportController@message. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SupportController@message
  '/support/conversations/{conversation}/messages/{message}/attachment':
    get:
      tags:
        - Communications
      operationId: supportAttachment53ac3b0
      summary: 'Attachment Support Conversations Conversation Messages Message Attachment'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SupportController@attachment. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SupportController@attachment
      security:
        -
          sanctum: []
      parameters:
        -
          name: conversation
          in: path
          required: true
          schema:
            type: string
        -
          name: message
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/support/conversations/{conversation}/reports':
    post:
      tags:
        - Communications
      operationId: reportSupportAbuse
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Conversation'
      requestBody:
        $ref: '#/components/requestBodies/SupportAbuseReport'
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Report Support Conversations Conversation Reports'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\SupportController@report. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\SupportController@report
  '/tracking/customer/{type}/{publicId}':
    get:
      summary: 'Read an owned customer assignment route and ETA'
      responses:
        200:
          description: 'Current tracking state'
      operationId: trackingCustomer6b7ea53
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\TrackingController@customer. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Commerce
      x-laravel-action: App\Http\Controllers\Api\V1\TrackingController@customer
      security:
        -
          sanctum: []
      parameters:
        -
          name: type
          in: path
          required: true
          schema:
            type: string
        -
          name: publicId
          in: path
          required: true
          schema:
            type: string
  '/tracking/driver/{type}/{id}':
    get:
      summary: 'Read active driver route target and ETA'
      responses:
        200:
          description: 'Driver route state'
      operationId: trackingDriver105462e
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\TrackingController@driver. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Commerce
      x-laravel-action: App\Http\Controllers\Api\V1\TrackingController@driver
      security:
        -
          sanctum: []
      parameters:
        -
          name: type
          in: path
          required: true
          schema:
            type: string
        -
          name: id
          in: path
          required: true
          schema:
            type: string
  /tracking/location:
    post:
      summary: 'Publish an owned active driver assignment location'
      responses:
        201:
          description: 'Tracking point accepted'
      operationId: trackingStore891451a
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\TrackingController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Commerce
      x-laravel-action: App\Http\Controllers\Api\V1\TrackingController@store
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  /vendor/catalog/configuration:
    get:
      tags:
        - Catalog
      operationId: vendorCatalogConfiguration
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Configuration Vendor Catalog Configuration'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@configuration. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@configuration
  /vendor/catalog/exports:
    get:
      tags:
        - Catalog
      operationId: catalogExports
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Paginated'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Index Vendor Catalog Exports'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogExportController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogExportController@index
    post:
      tags:
        - Catalog
      operationId: queueCatalogExport
      security:
        -
          sanctum: []
      parameters:
        -
          name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 100
      responses:
        202:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Store Vendor Catalog Exports'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogExportController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogExportController@store
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  '/vendor/catalog/exports/{export}':
    delete:
      tags:
        - Vendor
      operationId: catalogExportDestroy477965a
      summary: 'Destroy Vendor Catalog Exports Export'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogExportController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogExportController@destroy
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: export
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/exports/{export}/download':
    get:
      tags:
        - Catalog
      operationId: downloadCatalogExport
      security:
        -
          sanctum: []
      parameters:
        -
          name: export
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        200:
          description: 'Private UTF-8 catalog CSV'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Download Vendor Catalog Exports Export Download'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogExportController@download. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogExportController@download
  '/vendor/catalog/exports/{export}/retry':
    post:
      tags:
        - Vendor
      operationId: catalogExportRetry0e44c1e
      summary: 'Retry Vendor Catalog Exports Export Retry'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogExportController@retry. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogExportController@retry
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: export
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/catalog/import:
    post:
      tags:
        - Vendor
      operationId: vendorCatalogImportE0e70f9
      summary: 'Import Vendor Catalog Import'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@import. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@import
      security:
        -
          sanctum: []
      x-required-role: vendor
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/catalog/imports:
    get:
      tags:
        - Catalog
      operationId: catalogImports
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Paginated'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Index Vendor Catalog Imports'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogImportController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogImportController@index
    post:
      tags:
        - Catalog
      operationId: queueCatalogImport
      security:
        -
          sanctum: []
      parameters:
        -
          name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
            maxLength: 100
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
                - mode
              properties:
                file:
                  type: string
                  format: binary
                mode:
                  type: string
                  enum:
                    - create
                    - update_by_sku
      responses:
        202:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Store Vendor Catalog Imports'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogImportController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogImportController@store
  '/vendor/catalog/imports/{import}':
    get:
      tags:
        - Catalog
      operationId: catalogImport
      security:
        -
          sanctum: []
      parameters:
        -
          name: import
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Show Vendor Catalog Imports Import'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogImportController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogImportController@show
    delete:
      tags:
        - Catalog
      operationId: deleteCatalogImport
      security:
        -
          sanctum: []
      parameters:
        -
          name: import
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        200:
          $ref: '#/components/responses/Message'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Destroy Vendor Catalog Imports Import'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogImportController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogImportController@destroy
  '/vendor/catalog/imports/{import}/cancel':
    post:
      tags:
        - Vendor
      operationId: catalogImportCancelC323160
      summary: 'Cancel Vendor Catalog Imports Import Cancel'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogImportController@cancel. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogImportController@cancel
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: import
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/imports/{import}/retry':
    post:
      tags:
        - Vendor
      operationId: catalogImportRetry794173a
      summary: 'Retry Vendor Catalog Imports Import Retry'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogImportController@retry. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogImportController@retry
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: import
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/catalog/products:
    get:
      tags:
        - Vendor
      operationId: vendorCatalogIndexB7bb57d
      summary: 'Index Vendor Catalog Products'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@index
      security:
        -
          sanctum: []
      x-required-role: vendor
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    post:
      tags:
        - Vendor
      operationId: vendorCatalogStoreB3e1290
      summary: 'Store Vendor Catalog Products'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@store
      security:
        -
          sanctum: []
      x-required-role: vendor
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}':
    get:
      tags:
        - Vendor
      operationId: vendorCatalogShowF81ecf0
      summary: 'Show Vendor Catalog Products Product'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@show
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
    put:
      tags:
        - Vendor
      operationId: vendorCatalogUpdate0a359fd
      summary: 'Update Vendor Catalog Products Product'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@update. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@update
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorCatalogArchiveA569c84
      summary: 'Archive Vendor Catalog Products Product'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@archive. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@archive
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/addons':
    post:
      tags:
        - Vendor
      operationId: vendorCatalogStoreAddon9abfa65
      summary: 'Store Addon Vendor Catalog Products Product Addons'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@storeAddon. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@storeAddon
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/addons/{addon}':
    put:
      tags:
        - Vendor
      operationId: vendorCatalogUpdateAddonF52fef7
      summary: 'Update Addon Vendor Catalog Products Product Addons Addon'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@updateAddon. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@updateAddon
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: addon
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorCatalogDeleteAddon6b0a587
      summary: 'Delete Addon Vendor Catalog Products Product Addons Addon'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@deleteAddon. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@deleteAddon
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: addon
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/availability':
    post:
      tags:
        - Vendor
      operationId: vendorCatalogStoreWindowFc47614
      summary: 'Store Window Vendor Catalog Products Product Availability'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@storeWindow. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@storeWindow
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/availability/{window}':
    delete:
      tags:
        - Vendor
      operationId: vendorCatalogDeleteWindow6f3407e
      summary: 'Delete Window Vendor Catalog Products Product Availability Window'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@deleteWindow. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@deleteWindow
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: window
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/digital-assets':
    get:
      summary: 'List versioned product digital assets'
      responses:
        200:
          description: 'Asset list'
      operationId: digitalAssetIndex3e46650
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DigitalAssetController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\DigitalAssetController@index
      security:
        -
          sanctum: []
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
    post:
      summary: 'Upload a private product digital asset'
      responses:
        201:
          description: 'Asset created'
      operationId: digitalAssetStore9d1a829
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DigitalAssetController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\DigitalAssetController@store
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
  '/vendor/catalog/products/{product}/digital-assets/{asset}':
    delete:
      tags:
        - Vendor
      operationId: digitalAssetDestroy9d37082
      summary: 'Destroy Vendor Catalog Products Product Digital Assets Asset'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\DigitalAssetController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\DigitalAssetController@destroy
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: asset
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/images':
    post:
      tags:
        - Vendor
      operationId: vendorCatalogUploadImageD0d5e0a
      summary: 'Upload Image Vendor Catalog Products Product Images'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@uploadImage. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@uploadImage
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/images/{image}':
    delete:
      tags:
        - Vendor
      operationId: vendorCatalogDeleteImage36424ff
      summary: 'Delete Image Vendor Catalog Products Product Images Image'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@deleteImage. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@deleteImage
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: image
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/inventory-adjustments':
    post:
      tags:
        - Vendor
      operationId: vendorCatalogAdjustInventoryC3281ec
      summary: 'Adjust Inventory Vendor Catalog Products Product Inventory Adjustments'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@adjustInventory. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@adjustInventory
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/option-groups':
    post:
      tags:
        - Vendor
      operationId: vendorCatalogStoreOptionGroupE523170
      summary: 'Store Option Group Vendor Catalog Products Product Option Groups'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@storeOptionGroup. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@storeOptionGroup
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/option-groups/{group}':
    put:
      tags:
        - Vendor
      operationId: vendorCatalogUpdateOptionGroup6cf0aba
      summary: 'Update Option Group Vendor Catalog Products Product Option Groups Group'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@updateOptionGroup. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@updateOptionGroup
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: group
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorCatalogDeleteOptionGroupA3b0cf7
      summary: 'Delete Option Group Vendor Catalog Products Product Option Groups Group'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@deleteOptionGroup. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@deleteOptionGroup
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: group
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/option-groups/{group}/options':
    post:
      tags:
        - Vendor
      operationId: vendorCatalogStoreOption091bc0b
      summary: 'Store Option Vendor Catalog Products Product Option Groups Group Options'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@storeOption. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@storeOption
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: group
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/options/{option}':
    put:
      tags:
        - Vendor
      operationId: vendorCatalogUpdateOption5c70703
      summary: 'Update Option Vendor Catalog Products Product Options Option'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@updateOption. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@updateOption
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: option
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorCatalogDeleteOption44dcde8
      summary: 'Delete Option Vendor Catalog Products Product Options Option'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@deleteOption. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@deleteOption
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: option
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/variants':
    post:
      tags:
        - Vendor
      operationId: vendorCatalogStoreVariantA51f15e
      summary: 'Store Variant Vendor Catalog Products Product Variants'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@storeVariant. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@storeVariant
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/catalog/products/{product}/variants/{variant}':
    put:
      tags:
        - Vendor
      operationId: vendorCatalogUpdateVariant54879b8
      summary: 'Update Variant Vendor Catalog Products Product Variants Variant'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@updateVariant. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@updateVariant
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: variant
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorCatalogDeleteVariant9957cc1
      summary: 'Delete Variant Vendor Catalog Products Product Variants Variant'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorCatalogController@deleteVariant. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorCatalogController@deleteVariant
      security:
        -
          sanctum: []
      x-required-role: vendor
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
        -
          name: variant
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /vendor/compliance:
    get:
      tags:
        - Vendor
      operationId: vendorCompliance
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Index Vendor Compliance'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorComplianceController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorComplianceController@index
  /vendor/compliance/documents:
    post:
      tags:
        - Vendor
      operationId: uploadVendorComplianceDocument
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - type
                - label
                - file
              properties:
                type:
                  type: string
                label:
                  type: string
                  maxLength: 120
                document_number:
                  type: string
                  maxLength: 100
                expires_at:
                  type: string
                  format: date
                file:
                  type: string
                  format: binary
      responses:
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Store Vendor Compliance Documents'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorComplianceController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorComplianceController@store
  '/vendor/compliance/documents/{document}':
    get:
      tags:
        - Vendor
      operationId: downloadVendorComplianceDocument
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/VendorDocument'
      responses:
        200:
          description: 'Private KYC document'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Download Vendor Compliance Documents Document'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorComplianceController@download. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorComplianceController@download
  /vendor/compliance/submit:
    post:
      tags:
        - Vendor
      operationId: submitVendorCompliance
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Submit Vendor Compliance Submit'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorComplianceController@submit. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorComplianceController@submit
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  /vendor/delivery-zones:
    get:
      tags:
        - Vendor
      operationId: vendorZoneIndex987c03a
      summary: 'Index Vendor Delivery Zones'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorZoneController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorZoneController@index
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    post:
      tags:
        - Vendor
      operationId: vendorZoneStoreD57c48f
      summary: 'Store Vendor Delivery Zones'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorZoneController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorZoneController@store
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/delivery-zones/{zone}':
    put:
      tags:
        - Vendor
      operationId: vendorZoneUpdateCf4282a
      summary: 'Update Vendor Delivery Zones Zone'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorZoneController@update. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorZoneController@update
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: zone
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorZoneDestroy341a174
      summary: 'Destroy Vendor Delivery Zones Zone'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorZoneController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorZoneController@destroy
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: zone
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  /vendor/hour-exceptions:
    post:
      tags:
        - Vendor
      operationId: saveVendorHourException
      summary: 'Create or replace an owned future closure or special-hours date'
      security:
        -
          sanctum: []
      responses:
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@saveHourException. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@saveHourException
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  '/vendor/hour-exceptions/{exception}':
    delete:
      tags:
        - Vendor
      operationId: deleteVendorHourException
      summary: 'Remove an owned special-hours override'
      security:
        -
          sanctum: []
      parameters:
        -
          name: exception
          in: path
          required: true
          schema:
            type: integer
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@deleteHourException. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@deleteHourException
  /vendor/hours:
    put:
      tags:
        - Vendor
      operationId: replaceVendorWeeklyHours
      summary: 'Replace the active workspace seven-day accepting schedule'
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@hours. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@hours
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  /vendor/onboard:
    post:
      tags:
        - Vendor
      operationId: vendorWorkspaceOnboardC365f31
      summary: 'Onboard Vendor Onboard'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@onboard. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@onboard
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/order-schedule:
    get:
      tags:
        - Vendor
      operationId: orderScheduleVendorIndexF2cd832
      summary: 'Vendor Index Vendor Order Schedule'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderScheduleController@vendorIndex. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderScheduleController@vendorIndex
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    put:
      tags:
        - Vendor
      operationId: orderScheduleVendorSaveBad2b78
      summary: 'Vendor Save Vendor Order Schedule'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderScheduleController@vendorSave. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderScheduleController@vendorSave
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/orders:
    get:
      tags:
        - Vendor
      operationId: vendorWorkspaceOrders6659dc4
      summary: 'Orders Vendor Orders'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@orders. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@orders
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  '/vendor/orders/{order}/assign-driver':
    post:
      tags:
        - Commerce
      operationId: vendorAssignDriver
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Order'
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Assign Order Driver Vendor Orders Order Assign Driver'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@assignOrderDriver. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@assignOrderDriver
  '/vendor/orders/{order}/driver-candidates':
    get:
      tags:
        - Commerce
      operationId: vendorDriverCandidates
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Order'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Driver Candidates Vendor Orders Order Driver Candidates'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@driverCandidates. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@driverCandidates
  '/vendor/orders/{order}/reasons':
    get:
      tags:
        - Vendor
      operationId: vendorWorkspaceOrderReasonsC180e10
      summary: 'Order Reasons Vendor Orders Order Reasons'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@orderReasons. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@orderReasons
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/orders/{order}/receipt':
    get:
      summary: 'Generate an authoritative owned order receipt PDF'
      responses:
        200:
          description: 'PDF receipt'
      operationId: vendorReceiptReceiptDfa3ecc
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorReceiptController@receipt. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\VendorReceiptController@receipt
      security:
        -
          sanctum: []
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
  '/vendor/orders/{order}/transition':
    post:
      tags:
        - Vendor
      operationId: vendorWorkspaceTransitionOrderFf426b5
      summary: 'Transition Order Vendor Orders Order Transition'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@transitionOrder. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@transitionOrder
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: order
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/parcel-price-rules:
    get:
      summary: 'List active-workspace courier price rules and form configuration'
      responses:
        200:
          description: 'Price rule workspace'
      operationId: parcelPriceRuleIndexB2f5e5f
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelPriceRuleController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelPriceRuleController@index
      security:
        -
          sanctum: []
    post:
      summary: 'Create an effective courier package price rule'
      responses:
        201:
          description: 'Rule created'
      operationId: parcelPriceRuleStore0dec155
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelPriceRuleController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelPriceRuleController@store
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  '/vendor/parcel-price-rules/{rule}':
    put:
      summary: 'Update an owned courier price rule'
      responses:
        200:
          description: 'Rule updated'
      operationId: parcelPriceRuleUpdateD12198a
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelPriceRuleController@update. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelPriceRuleController@update
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      parameters:
        -
          name: rule
          in: path
          required: true
          schema:
            type: string
    delete:
      summary: 'Deactivate an owned courier price rule'
      responses:
        200:
          description: 'Rule deactivated'
      operationId: parcelPriceRuleDestroy2e58977
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\ParcelPriceRuleController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\ParcelPriceRuleController@destroy
      security:
        -
          sanctum: []
      parameters:
        -
          name: rule
          in: path
          required: true
          schema:
            type: string
  /vendor/prescriptions:
    get:
      tags:
        - Vendor
      operationId: prescriptionVendorIndexA3eafec
      summary: 'Vendor Index Vendor Prescriptions'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@vendorIndex. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@vendorIndex
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  '/vendor/prescriptions/{prescription}/quote':
    post:
      tags:
        - Vendor
      operationId: prescriptionQuote5cdc481
      summary: 'Quote Vendor Prescriptions Prescription Quote'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@quote. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@quote
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: prescription
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/prescriptions/{prescription}/reject':
    post:
      tags:
        - Vendor
      operationId: prescriptionRejectFe579af
      summary: 'Reject Vendor Prescriptions Prescription Reject'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PrescriptionController@reject. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PrescriptionController@reject
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: prescription
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/printer-settings:
    get:
      summary: 'Read active-workspace receipt printer settings'
      responses:
        200:
          description: 'Printer profile'
      operationId: vendorReceiptSettings2610b3b
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorReceiptController@settings. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\VendorReceiptController@settings
      security:
        -
          sanctum: []
    put:
      summary: 'Update active-workspace receipt printer settings'
      responses:
        200:
          description: 'Printer profile updated'
      operationId: vendorReceiptSaveB4b1edd
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorReceiptController@save. Authentication, ownership and state-transition rules are enforced server-side.'
      tags:
        - Vendor
      x-laravel-action: App\Http\Controllers\Api\V1\VendorReceiptController@save
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
  /vendor/products:
    post:
      tags:
        - Vendor
      operationId: vendorWorkspaceStoreProduct5b51fe3
      summary: 'Store Product Vendor Products'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@storeProduct. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@storeProduct
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/products/{product}':
    patch:
      tags:
        - Vendor
      operationId: vendorWorkspaceUpdateProductCb2230f
      summary: 'Update Product Vendor Products Product'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@updateProduct. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@updateProduct
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: product
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/properties:
    get:
      tags:
        - Properties
      operationId: vendorProperties
      security:
        -
          sanctum: []
      responses:
        200:
          $ref: '#/components/responses/Paginated'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Vendor Index Vendor Properties'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@vendorIndex. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@vendorIndex
    post:
      tags:
        - Properties
      operationId: createVendorProperty
      security:
        -
          sanctum: []
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        201:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Vendor Store Vendor Properties'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@vendorStore. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@vendorStore
  '/vendor/properties/{property}':
    get:
      tags:
        - Properties
      operationId: vendorProperty
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Property'
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
      summary: 'Vendor Show Vendor Properties Property'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@vendorShow. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@vendorShow
    put:
      tags:
        - Properties
      operationId: updateVendorProperty
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Property'
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        $ref: '#/components/requestBodies/Json'
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Vendor Update Vendor Properties Property'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@vendorUpdate. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@vendorUpdate
    delete:
      tags:
        - Properties
      operationId: archiveVendorProperty
      security:
        -
          sanctum: []
      parameters:
        -
          $ref: '#/components/parameters/Property'
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Message'
        403:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Vendor Destroy Vendor Properties Property'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@vendorDestroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@vendorDestroy
  '/vendor/properties/{property}/blocks':
    post:
      tags:
        - Vendor
      operationId: propertyStoreBlock8b69ea4
      summary: 'Store Block Vendor Properties Property Blocks'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@storeBlock. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@storeBlock
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/properties/{property}/blocks/{block}':
    delete:
      tags:
        - Vendor
      operationId: propertyDestroyBlock4dcb6fb
      summary: 'Destroy Block Vendor Properties Property Blocks Block'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@destroyBlock. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@destroyBlock
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
        -
          name: block
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/properties/{property}/media':
    post:
      tags:
        - Vendor
      operationId: propertyStoreMedia28f3d52
      summary: 'Store Media Vendor Properties Property Media'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@storeMedia. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@storeMedia
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/properties/{property}/media/{media}':
    delete:
      tags:
        - Vendor
      operationId: propertyDestroyMedia89b07a4
      summary: 'Destroy Media Vendor Properties Property Media Media'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@destroyMedia. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@destroyMedia
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
        -
          name: media
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/properties/{property}/publish':
    post:
      tags:
        - Vendor
      operationId: propertyPublish6b8b15b
      summary: 'Publish Vendor Properties Property Publish'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\PropertyController@publish. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\PropertyController@publish
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: property
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/service-bookings:
    get:
      tags:
        - Vendor
      operationId: vendorServiceBookingsCcc4b81
      summary: 'Bookings Vendor Service Bookings'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@bookings. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@bookings
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  '/vendor/service-bookings/{booking}/transition':
    post:
      tags:
        - Vendor
      operationId: vendorServiceTransition7a521ce
      summary: 'Transition Vendor Service Bookings Booking Transition'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@transition. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@transition
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: booking
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/service-bookings/{booking}/verify':
    post:
      tags:
        - Vendor
      operationId: vendorServiceVerify2d7c4cb
      summary: 'Verify Vendor Service Bookings Booking Verify'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@verify. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@verify
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: booking
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /vendor/services:
    post:
      tags:
        - Vendor
      operationId: vendorServiceStore52c2f86
      summary: 'Store Vendor Services'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@store. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@store
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    get:
      tags:
        - Vendor
      operationId: vendorServiceIndex4471200
      summary: 'Index Vendor Services'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@index. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@index
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  '/vendor/services/{service}':
    get:
      tags:
        - Vendor
      operationId: vendorServiceShow1777f66
      summary: 'Show Vendor Services Service'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@show
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
    put:
      tags:
        - Vendor
      operationId: vendorServiceUpdateA4984f6
      summary: 'Update Vendor Services Service'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@update. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@update
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorServiceDestroyA062ffe
      summary: 'Destroy Vendor Services Service'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@destroy. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@destroy
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/services/{service}/addons':
    post:
      tags:
        - Vendor
      operationId: vendorServiceStoreAddon75addcb
      summary: 'Store Addon Vendor Services Service Addons'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@storeAddon. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@storeAddon
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  '/vendor/services/{service}/addons/{addon}':
    put:
      tags:
        - Vendor
      operationId: vendorServiceUpdateAddon6df2149
      summary: 'Update Addon Vendor Services Service Addons Addon'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@updateAddon. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@updateAddon
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
        -
          name: addon
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
    delete:
      tags:
        - Vendor
      operationId: vendorServiceDestroyAddon02185d6
      summary: 'Destroy Addon Vendor Services Service Addons Addon'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@destroyAddon. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@destroyAddon
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
        -
          name: addon
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        204:
          description: 'Resource deleted or operation completed without a response body.'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
  '/vendor/services/{service}/availability':
    put:
      tags:
        - Vendor
      operationId: vendorServiceAvailability9c6d944
      summary: 'Availability Vendor Services Service Availability'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorServiceController@availability. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorServiceController@availability
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      parameters:
        -
          name: service
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/workspace:
    get:
      tags:
        - Vendor
      operationId: vendorWorkspaceShow537308a
      summary: 'Show Vendor Workspace'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@show
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
    patch:
      tags:
        - Vendor
      operationId: vendorWorkspaceUpdate8e4d7ab
      summary: 'Update Vendor Workspace'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@update. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@update
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /vendor/workspaces:
    get:
      tags:
        - Vendor
      operationId: vendorWorkspaceWorkspaces2127fc2
      summary: 'Workspaces Vendor Workspaces'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@workspaces. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@workspaces
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
  /vendor/workspaces/switch:
    post:
      tags:
        - Vendor
      operationId: vendorWorkspaceSwitchWorkspace2e2e017
      summary: 'Switch Workspace Vendor Workspaces Switch'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorWorkspaceController@switchWorkspace. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorWorkspaceController@switchWorkspace
      security:
        -
          sanctum: []
      x-required-role: 'vendor,admin'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /vendors:
    get:
      tags:
        - Catalog
      operationId: vendors
      parameters:
        -
          $ref: '#/components/parameters/Page'
      responses:
        200:
          $ref: '#/components/responses/Paginated'
      summary: 'Vendors Vendors'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogController@vendors. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogController@vendors
  '/vendors/{vendor}':
    get:
      tags:
        - Catalog
      operationId: vendor
      parameters:
        -
          $ref: '#/components/parameters/Vendor'
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Vendor Vendors Vendor'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\CatalogController@vendor. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\CatalogController@vendor
  '/vendors/{vendor}/delivery-quote':
    get:
      tags:
        - Vendor
      operationId: vendorZoneQuote52412b3
      summary: 'Quote Vendors Vendor Delivery Quote'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\VendorZoneController@quote. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\VendorZoneController@quote
      parameters:
        -
          name: vendor
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  '/vendors/{vendor}/order-slots':
    get:
      tags:
        - Vendor
      operationId: orderScheduleSlots0f17eef
      summary: 'Slots Vendors Vendor Order Slots'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\OrderScheduleController@slots. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\OrderScheduleController@slots
      parameters:
        -
          name: vendor
          in: path
          required: true
          schema:
            type: string
      responses:
        200:
          $ref: '#/components/responses/Success'
        404:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
  /wallet:
    get:
      tags:
        - Payments
      operationId: customerWallet
      security:
        -
          sanctum: []
      parameters:
        -
          name: currency
          in: query
          schema:
            type: string
            minLength: 3
            maxLength: 3
        -
          $ref: '#/components/parameters/Page'
      responses:
        200:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
      summary: 'Show Wallet'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\WalletController@show. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\WalletController@show
  /wallet/adjustments:
    post:
      tags:
        - Payments
      operationId: walletAdjust1003c44
      summary: 'Adjust Wallet Adjustments'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\WalletController@adjust. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\WalletController@adjust
      security:
        -
          sanctum: []
      x-required-role: admin
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        403:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
  /wallet/top-ups:
    post:
      tags:
        - Payments
      operationId: createWalletTopUp
      security:
        -
          sanctum: []
      parameters:
        -
          name: Idempotency-Key
          in: header
          required: true
          schema:
            type: string
            minLength: 8
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - amount
                - currency
                - gateway
              properties:
                amount:
                  type: number
                  minimum: 1
                  maximum: 100000
                currency:
                  type: string
                  minLength: 3
                  maxLength: 3
                gateway:
                  type: string
                  description: 'Enabled hosted gateway key'
      responses:
        201:
          $ref: '#/components/responses/Success'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
      summary: 'Top Up Wallet Top Ups'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\WalletController@topUp. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\WalletController@topUp
  '/wallet/top-ups/{topUp}':
    get:
      tags:
        - Payments
      operationId: walletTopUpStatus
      security:
        -
          sanctum: []
      parameters:
        -
          name: topUp
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        200:
          $ref: '#/components/responses/Success'
        403:
          $ref: '#/components/responses/Error'
        404:
          $ref: '#/components/responses/Error'
      summary: 'Top Up Status Wallet Top Ups Topup'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\WalletController@topUpStatus. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\WalletController@topUpStatus
  /wallet/transfers:
    post:
      tags:
        - Payments
      operationId: walletTransfer3cf845c
      summary: 'Transfer Wallet Transfers'
      description: 'Laravel API contract for App\Http\Controllers\Api\V1\WalletController@transfer. Authentication, ownership and state-transition rules are enforced server-side.'
      x-laravel-action: App\Http\Controllers\Api\V1\WalletController@transfer
      security:
        -
          sanctum: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
      responses:
        200:
          $ref: '#/components/responses/Success'
        201:
          $ref: '#/components/responses/Success'
        401:
          $ref: '#/components/responses/Error'
        409:
          $ref: '#/components/responses/Error'
        422:
          $ref: '#/components/responses/Error'
        429:
          $ref: '#/components/responses/Error'
components:
  securitySchemes:
    sanctum:
      type: http
      scheme: bearer
      bearerFormat: Sanctum
  parameters:
    Page:
      name: page
      in: query
      schema:
        type: integer
        minimum: 1
    Vendor:
      name: vendor
      in: path
      required: true
      schema:
        type: string
    Order:
      name: order
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Job:
      name: job
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Ride:
      name: ride
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Stop:
      name: stop
      in: path
      required: true
      schema:
        type: integer
        minimum: 1
    CheckoutGroup:
      name: group
      in: path
      required: true
      schema:
        type: string
        format: uuid
    SubscriptionPlan:
      name: plan
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Conversation:
      name: conversation
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Product:
      name: product
      in: path
      required: true
      schema:
        type: integer
        minimum: 1
    Property:
      name: property
      in: path
      required: true
      schema:
        type: string
        format: uuid
    FavouriteType:
      name: type
      in: path
      required: true
      schema:
        type: string
        enum:
          - vendor
          - product
          - service
          - property
    FavouriteIdentifier:
      name: identifier
      in: path
      required: true
      schema:
        type: string
        description: 'Numeric ID except properties, which use their public UUID'
    ShareType:
      name: type
      in: path
      required: true
      schema:
        type: string
        enum:
          - order
          - parcel
          - ride
          - property
          - service
    ShareIdentifier:
      name: identifier
      in: path
      required: true
      schema:
        type: string
        maxLength: 64
    VendorDocument:
      name: document
      in: path
      required: true
      schema:
        type: string
        format: uuid
    Vehicle:
      name: vehicle
      in: path
      required: true
      schema:
        type: integer
        minimum: 1
  requestBodies:
    Auth:
      required: true
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
    PartnerRegistration:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - role
              - name
              - email
              - phone
              - password
              - password_confirmation
              - terms_accepted
            properties:
              role:
                type: string
                enum:
                  - driver
                  - vendor
              name:
                type: string
                maxLength: 120
              email:
                type: string
                format: email
              phone:
                type: string
                maxLength: 30
              password:
                type: string
                minLength: 8
              password_confirmation:
                type: string
                minLength: 8
              terms_accepted:
                type: boolean
                const: true
    PhoneOtpRequest:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - phone
            properties:
              phone:
                type: string
                example: '+919876543210'
    PhoneOtpVerify:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - phone
              - code
            properties:
              phone:
                type: string
                example: '+919876543210'
              code:
                type: string
                pattern: '^[0-9]{6}$'
              device_name:
                type: string
                maxLength: 80
    Onboarding:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - locale
              - currency
              - timezone
            properties:
              locale:
                type: string
                example: hi
              currency:
                type: string
                example: INR
              timezone:
                type: string
                example: Asia/Kolkata
    PasswordChange:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - current_password
              - password
              - password_confirmation
            properties:
              current_password:
                type: string
              password:
                type: string
                minLength: 10
              password_confirmation:
                type: string
                minLength: 10
    AccountDeletion:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - password
              - confirmation
              - reason
            properties:
              password:
                type: string
              confirmation:
                type: string
                enum:
                  - DELETE
              reason:
                type: string
                maxLength: 500
    SupportAbuseReport:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - category
            properties:
              message_id:
                type: string
                format: uuid
                nullable: true
              category:
                type: string
                enum:
                  - spam
                  - harassment
                  - fraud
                  - privacy
                  - other
              details:
                type: string
                maxLength: 2000
    DeliveryTransition:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - status
            properties:
              status:
                type: string
                enum:
                  - accepted
                  - rejected
                  - at_pickup
                  - picked_up
                  - at_dropoff
                  - completed
                  - failed
                  - cancelled
              otp:
                type: string
                pattern: '^[0-9]{6}$'
              reason:
                type: string
                maxLength: 1000
    DeliveryScan:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - scan_payload
            properties:
              scan_payload:
                type: string
                maxLength: 1000
                description: 'Opaque SMR One delivery QR envelope'
    ParcelStopTransition:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - status
            properties:
              status:
                type: string
                enum:
                  - arrived
                  - completed
              otp:
                type: string
                pattern: '^[0-9]{4}$'
                description: 'Required for intermediate completion'
    RideSos:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - latitude
              - longitude
            properties:
              latitude:
                type: number
                minimum: -90
                maximum: 90
              longitude:
                type: number
                minimum: -180
                maximum: 180
              message:
                type: string
                maxLength: 1000
    DeliveryProof:
      required: true
      content:
        multipart/form-data:
          schema:
            type: object
            required:
              - photo
              - received_by
              - signature_name
              - signature_payload
            properties:
              photo:
                type: string
                format: binary
              received_by:
                type: string
                maxLength: 120
              signature_name:
                type: string
                maxLength: 120
              signature_payload:
                type: string
                description: 'JSON vector strokes with normalized coordinates'
              captured_at:
                type: string
                format: date-time
    DriverVehicle:
      required: true
      content:
        application/json:
          schema:
            type: object
            required:
              - driver_vehicle_type_id
              - make
              - model
              - registration_number
              - year
              - is_active
            properties:
              driver_vehicle_type_id:
                type: integer
                minimum: 1
              make:
                type: string
                maxLength: 80
              model:
                type: string
                maxLength: 80
              registration_number:
                type: string
                maxLength: 40
              color:
                type: string
                maxLength: 40
                nullable: true
              year:
                type: integer
                minimum: 1980
              is_active:
                type: boolean
    Json:
      required: true
      content:
        application/json:
          schema:
            type: object
            additionalProperties: true
  responses:
    Success:
      description: 'Successful response'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DataEnvelope'
    Paginated:
      description: 'Paginated response'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Pagination'
    Error:
      description: 'Error response'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Message:
      description: 'Privacy-preserving acknowledgement'
      content:
        application/json:
          schema:
            type: object
            required:
              - message
            properties:
              message:
                type: string
  schemas:
    DataEnvelope:
      type: object
      properties:
        data: {  }
    Pagination:
      type: object
      required:
        - data
        - current_page
        - last_page
      properties:
        data:
          type: array
          items: {  }
        current_page:
          type: integer
        last_page:
          type: integer
        per_page:
          type: integer
        total:
          type: integer
    Error:
      type: object
      required:
        - message
      properties:
        message:
          type: string
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
