---
/suggestions:
  get:
    x-mojo-to: Suggestions#list
    operationId: listSuggestions
    description: This resource returns a list of purchase suggestions
    summary: List purchase suggestions
    tags:
      - suggestions
    parameters:
      - $ref: "../swagger.yaml#/parameters/match"
      - $ref: "../swagger.yaml#/parameters/order_by"
      - $ref: "../swagger.yaml#/parameters/page"
      - $ref: "../swagger.yaml#/parameters/per_page"
      - $ref: "../swagger.yaml#/parameters/q_param"
      - $ref: "../swagger.yaml#/parameters/q_body"
      - $ref: "../swagger.yaml#/parameters/request_id_header"
    produces:
      - application/json
    responses:
      "200":
        description: A list of suggestions
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/suggestion"
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        suggestions:
          - suggestions_manage
          - suggestions_delete
          - suggestions_create
  post:
    x-mojo-to: Suggestions#add
    operationId: addSuggestions
    description: This resource accepts a new purchase suggestion and creates it
    summary: Add a purchase suggestion
    tags:
      - suggestions
    parameters:
      - name: body
        in: body
        description: A JSON object containing informations about the new suggestion
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/suggestion"
      - name: x-koha-override
        in: header
        required: false
        description: Overrides list sent as a request header
        type: array
        items:
          type: string
          enum:
            - any
            - max_total
            - max_pending
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "201":
        description: Suggestion added
        schema:
          $ref: "../swagger.yaml#/definitions/suggestion"
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

          * `max_total_reached`
          * `max_pending_reached`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        suggestions: suggestions_create
"/suggestions/{suggestion_id}":
  get:
    x-mojo-to: Suggestions#get
    operationId: getSuggestion
    description: This resource gives access to a specific purchase suggestion
    summary: Get purchase suggestion
    tags:
      - suggestions
    parameters:
      - $ref: "../swagger.yaml#/parameters/suggestion_id_pp"
    produces:
      - application/json
    responses:
      "200":
        description: A suggestion
        schema:
          $ref: "../swagger.yaml#/definitions/suggestion"
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Suggestion not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        suggestions:
          - suggestions_manage
          - suggestions_delete
          - suggestions_create
  put:
    x-mojo-to: Suggestions#update
    operationId: updateSuggestion
    description: This resource allows updating an existing purchase suggestion
    summary: Update purchase suggestion
    tags:
      - suggestions
    parameters:
      - $ref: "../swagger.yaml#/parameters/suggestion_id_pp"
      - name: body
        in: body
        description: A JSON object containing informations about the new hold
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/suggestion"
    produces:
      - application/json
    responses:
      "200":
        description: A suggestion
        schema:
          $ref: "../swagger.yaml#/definitions/suggestion"
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Suggestion not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        suggestions: suggestions_manage
  delete:
    x-mojo-to: Suggestions#delete
    operationId: deleteSuggestion
    description: This resource deletes an existing purchase suggestion
    summary: Delete purchase suggestion
    tags:
      - suggestions
    parameters:
      - $ref: "../swagger.yaml#/parameters/suggestion_id_pp"
    produces:
      - application/json
    responses:
      "204":
        description: Suggestion deleted
        schema:
          type: string
      "400":
        description: Bad request
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "401":
        description: Authentication required
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "404":
        description: Suggestion not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        suggestions: suggestions_delete
/suggestions/managers:
  get:
    x-mojo-to: Suggestions#list_managers
    operationId: listSuggestionsManagers
    description: This resource returns a list of patron allowed to be a manager for suggestions
    summary: List possibe managers for suggestions
    tags:
      - suggestions
    parameters:
      - $ref: "../swagger.yaml#/parameters/match"
      - $ref: "../swagger.yaml#/parameters/order_by"
      - $ref: "../swagger.yaml#/parameters/page"
      - $ref: "../swagger.yaml#/parameters/per_page"
      - $ref: "../swagger.yaml#/parameters/q_param"
      - $ref: "../swagger.yaml#/parameters/q_body"
      - name: x-koha-embed
        in: header
        required: false
        description: Embed list sent as a request header
        type: array
        items:
          type: string
          enum:
            - extended_attributes
            - library
        collectionFormat: csv
    produces:
      - application/json
    responses:
      "200":
        description: A list of suggestions' managers
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/patron"
      "400":
        description: |
          Bad request. Possible `error_code` attribute values:

            * `invalid_query`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "403":
        description: Access forbidden
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: |
          Internal server error. Possible `error_code` attribute values:

          * `internal_server_error`
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        suggestions:
          - suggestions_manage
          - suggestions_delete
          - suggestions_create
