/shoporder:
  get:
    tags:
    - shopOrder
    description: Return all the shop orders belong to given store
    operationId: listShopOrders
    security:
    - bearerAuth: []
    responses:
      $ref#4xx: './responses/4xx.yaml'
      200:
        description: list of shop orders
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ShopOrder'
  post:
    tags:
    - shopOrder
    description: Update/Create shop order
    operationId: saveShopOrder
    security:
    - bearerAuth: []
    requestBody:
      required: true
      content:
        application/json: 
          schema: 
            $ref: '#/components/schemas/ShopOrder'
    responses:
      $ref#4xx: './responses/4xx.yaml'
      $ref#upsert: './responses/20x-upsert.yaml'

/shoporder/{id}:
  get:
    tags:
    - shopOrder
    description: Return the shop order with given id
    operationId: loadShopOrder
    security:
    - bearerAuth: []
    parameters:
    - $ref#id: './parameters/objectid.yaml'
    responses:
      $ref#4xx: './responses/4xx.yaml'
      200:
        description: shop order detail
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ShopOrder'
  delete:
    tags:
    - shopOrder
    description: Delete a shop order with given id
    operationId: deleteShopOrder
    security:
    - bearerAuth: []
    parameters:
    - $ref#id: './parameters/objectid.yaml'
    responses:
      $ref#4xx: './responses/4xx.yaml'
      $ref#204: './responses/204.yaml'

/shoporder/apply:
  post:
    tags:
    - shopOrder
    description: Apply shop order
    operationId: applyShopOrder
    security:
    - bearerAuth: []
    requestBody:
      required: true
      content:
        application/json: 
          schema: 
            $ref: '#/components/schemas/ShopOrder'
    responses:
      $ref#4xx: './responses/4xx.yaml'
      200:
        description: apply successfully