---
"/patrons/{patron_id}/account":
  get:
    x-mojo-to: Patrons::Account#get
    operationId: getPatronAccount
    tags:
      - patrons
    summary: Get account information for a patron
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
    produces:
      - application/json
    responses:
      "200":
        description: Patron's account balance
        schema:
          $ref: "../swagger.yaml#/definitions/patron_balance"
      "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: Patron 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:
        borrowers: edit_borrowers
        updatecharges: remaining_permissions
"/patrons/{patron_id}/account/credits":
  get:
    x-mojo-to: Patrons::Account#list_credits
    operationId: listPatronCredits
    tags:
      - patrons
    summary: List patron credits
    produces:
      - application/json
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - $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"
    responses:
      "200":
        description: A list of credits
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/credit"
      "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 error
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        borrowers: edit_borrowers
        updatecharges: remaining_permissions
  post:
    x-mojo-to: Patrons::Account#add_credit
    operationId: addPatronCredit
    tags:
      - patrons
    summary: Add credit to a patron's account
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - name: body
        in: body
        description: A JSON object containing credit information
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/patron_account_credit"
    produces:
      - application/json
    responses:
      "201":
        description: Credit added
        schema:
          $ref: "../swagger.yaml#/definitions/account_line"
      "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: Patron 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:
        updatecharges: remaining_permissions
"/patrons/{patron_id}/account/debits":
  get:
    x-mojo-to: Patrons::Account#list_debits
    operationId: listPatronDebits
    tags:
      - patrons
    summary: List patron debits
    produces:
      - application/json
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - $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"
    responses:
      "200":
        description: A list of debits
        schema:
          type: array
          items:
            $ref: "../swagger.yaml#/definitions/debit"
      "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"
      "404":
        description: Patron not found
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "500":
        description: Internal error
        schema:
          $ref: "../swagger.yaml#/definitions/error"
      "503":
        description: Under maintenance
        schema:
          $ref: "../swagger.yaml#/definitions/error"
    x-koha-authorization:
      permissions:
        borrowers: edit_borrowers
        updatecharges: remaining_permissions
  post:
    x-mojo-to: Patrons::Account#add_debit
    operationId: addPatronDebit
    tags:
      - patrons
    summary: Add debit to a patron's account
    parameters:
      - $ref: "../swagger.yaml#/parameters/patron_id_pp"
      - name: body
        in: body
        description: A JSON object containing debit information
        required: true
        schema:
          $ref: "../swagger.yaml#/definitions/debit"
    produces:
      - application/json
    responses:
      "201":
        description: Debit added
        schema:
          $ref: "../swagger.yaml#/definitions/debit"
      "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: Patron 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:
        updatecharges: remaining_permissions
