Uploaded image for project: 'mod-inn-reach'
  1. mod-inn-reach
  2. MODINREACH-8

Define Data Model for INN-Reach Transactions (All Types)

    XMLWordPrintable

Details

    • Volaris Sprint 122, Volaris Sprint 123
    • 5
    • Volaris

    Description

      Purpose

      INN-Reach supports three transaction types for requests originating from the central server. All three share common attributes. We need to store the attributes submitted by the central server, along with some other transaction-related data, such as item barcodes and various FOLIO ids for items, patrons, loans, and requests associated with the transaction. Below are the three transaction types with their required and optional request attributes, as well as a list of additional transaction-related data to store in the transaction record.

      Requirements

      1. Requirement (Patron Hold)
        • Transaction Request Parameters
          • transactionTime
            • integer, required, Epoch UNIX timestamp
          • pickupLocation
            • string, required, A colon-delimited list of three or four 512-byte (maximum) strings, with the last string being optional.
            • Example:
              <Pickup Loc Code>:<Display Name>:<Print Name>:<Delivery Stop>
          • patronId
            • string, required, lowercase alpha-numeric (32 char max)
          • patronAgencyCode
            • string, required, 5-character lower-case alphanumeric
          • itemAgencyCode
            • string, required, 5-character lower-case alphanumeric
          • itemId
            • string, required, lowercase alpha-numeric (32 char max)
          • centralItemType
            • integer, required, 0-255
          • title
            • string, conditional/optional, 256 bytes maximum
          • author
            • string, optional, 256 bytes maximum
          • callNumber
            • string, optional, 256 bytes maximum
          • needBefore
            • integer, optional, Epoch UNIX timestamp
        • Additional data to store in transaction record
          • folioPatronId
            • string, required, FOLIO patron UUID associated with the record
          • folioItemId
            • string, required, FOLIO Item UUID associated with temporary item created for the requested item
          • folioRequestId
            • string, required, FOLIO Request UUID
          • folioLoanId
            • string, optional, FOLIO Loan UUID
          • shippedItemBarcode
            • string, optional, barcode of shipped item (provided by owning site when ITEM_SHIPPED status received from central, used for lookup)
      2. Requirement: Item Hold
        • Transaction Request Parameters
          • transactionTime
            • integer, required, Epoch UNIX timestamp
          • pickupLocation
            • string, required, A colon-delimited list of three or four 512-byte (maximum) strings, with the last string being optional.
            • Example:
              <Pickup Loc Code>:<Display Name>:<Print Name>:<Delivery Stop>
          • patronId
            • string, required, lowercase alpha-numeric (32 char max)
          • patronAgencyCode
            • string, required, 5-character lower-case alphanumeric
          • itemAgencyCode
            • string, required, 5-character lower-case alphanumeric
          • itemId
            • string, required, lowercase alpha-numeric (32 char max)
          • centralItemType
            • integer, required, 0-255
          • needBefore
            • integer, optional, Epoch UNIX timestamp
          • centralPatronType
            • integer, required, 0-255
          • patronName
            • string, required, 256 bytes maximum
        • Additional data to store in transaction record
          • folioPatronId
            • string, required, FOLIO patron UUID associated with the record
          • folioItemId
            • string, required, FOLIO Item UUID for itemId in local catalog
          • folioRequestId
            • string, required, Local FOLIO Request UUID
          • folioLoanId
            • string, optional, Local FOLIO Loan UUID
      3. Requirement: Local Hold
        • Transaction Request Parameters
          • transactionTime
            • integer, required, Epoch UNIX timestamp
          • pickupLocation
            • string, required, A colon-delimited list of three or four 512-byte (maximum) strings, with the last string being optional.
            • Example:
              <Pickup Loc Code>:<Display Name>:<Print Name>:<Delivery Stop>
          • patronId
            • string, required, lowercase alpha-numeric (32 char max)
          • patronAgencyCode
            • string, required, 5-character lower-case alphanumeric
          • patronHomeLibrary
            • string, optional, N/A
          • patronPhone
            • string, optional, N/A
          • itemAgencyCode
            • string, required, 5-character lower-case alphanumeric
          • itemId
            • string, required, lowercase alpha-numeric (32 char max)
          • centralItemType
            • integer, required, 0-255
          • title
            • string, conditional/optional, 256 bytes maximum
          • author
            • string, optional, 256 bytes maximum
          • callNumber
            • string, optional, 256 bytes maximum
          • needBefore
            • integer, optional, Epoch UNIX timestamp
          • centralPatronType
            • integer, required, 0-255
          • patronName
            • string, required, 256 bytes maximum
        • Additional data to store in transaction record
          • folioPatronId
            • string, required, Local FOLIO patron UUID associated with the record
          • folioItemId
            • string, required, FOLIO Item UUID associated with the requested item
          • folioRequestId
            • string, required, FOLIO Request UUID
          • folioLoanId
            • string, optional, FOLIO Loan UUID
      4. Requirement: All records have:
        •  trackingId (a URL component of the API endpoints, provided by central server)
          • ID for transaction tracking
        • centralCode (a URL component of the API endpoints, provided by central server)
          • Unique code that identifies the central server
        • Provided as URL parameters to the post/put API requests that create each transaction type.
      5. Requirement: We also need to store the INN-Reach transaction state. One of:
        • ITEM_HOLD
        • PATRON_HOLD
        • LOCAL_HOLD
        • BORROWER_RENEW
        • BORROWING_SITE_CANCEL
        • ITEM_IN_TRANSIT
        • RECEIVE_UNANNOUNCED
        • RETURN_UNCIRCULATED
        • CLAIMS_RETURNED
        • ITEM_RECEIVED
        • ITEM_SHIPPED
        • LOCAL_CHECKOUT
        • CANCEL_REQUEST
        • FINAL_CHECKIN
        • RECALL
        • TRANSFER
      6. Requirement: The data model should store transaction type as one of (based on endpoint used to create the transaction):
        • Item
        • Patron
        • Local

      Acceptance Criteria

      • Model accounts for all data attributes described above that are necessary to represent an INN-Reach transaction and associate it with its related FOLIO data models
      • Can CRUD instances of the model in the database

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                GurleenKaur Gurleen Kaur
                brookstravis Brooks Travis
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  TestRail: Runs

                    TestRail: Cases