TLR - data migration

TLR - data migration

Planned changes in Circulation request DB schema

Current DB record structure (segments to be removed are in orange)

Proposed DB record structure (segments to be added are in green)

Current DB record structure (segments to be removed are in orange)

Proposed DB record structure (segments to be added are in green)

{

  "id": "9c8583f1-8631-4194-a477-572d342cdd4d",
  "item": {
    "title": "A semantic web primer",
    "barcode": "10101",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ]
  },
  "itemId": "7212ba6a-8dcf-45a1-be9a-ffaa847c4423",
  "status": "Open - Not yet filled",
  "metadata": {
    "createdDate": "2021-09-09T13:14:43.756",
    "updatedDate": "2021-09-09T13:14:43.756+00:00",
    "createdByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f",
    "updatedByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f"
  },
  "position": 1,
  "requester": {
    "barcode": "10001",
    "lastName": "Kurash",
    "firstName": "Alexander"
  },
  "requestDate": "2021-09-09T13:14:41.000+00:00",
  "requestType": "Hold",
  "requesterId": "27bc1f87-8c08-437a-be09-1df885262497",
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f"
}

{
  "id": "9c8583f1-8631-4194-a477-572d342cdd4d",
  "requestLevel": "Item",
  "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
  "instance": {
    "title": "A semantic web primer",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ]
  },
  "holdingsRecordId": "dc8ff78d-6bf0-406a-95e2-be3782357535",
  "itemId": "7212ba6a-8dcf-45a1-be9a-ffaa847c4423",
  "item": {
    "barcode": "10101"
  },
  "status": "Open - Not yet filled",
  "metadata": {
    "createdDate": "2021-09-09T13:14:43.756",
    "updatedDate": "2021-09-09T13:14:43.756+00:00",
    "createdByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f",
    "updatedByUserId": "c2d3902a-3454-50ea-998f-42897e32ac5f"
  },
  "position": 1,
  "requester": {
    "barcode": "10001",
    "lastName": "Kurash",
    "firstName": "Alexander"
  },
  "requestDate": "2021-09-09T13:14:41.000+00:00",
  "requestType": "Hold",
  "requesterId": "27bc1f87-8c08-437a-be09-1df885262497",
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f"
}

Planned API changes

API endpoint: /circulation/requests

Note that item field has some additional instance-related values that will also be moved to the instance field.

Current JSON structure (segments to be removed are in orange)

Proposed JSON structure (segments to be added are in green)

Current JSON structure (segments to be removed are in orange)

Proposed JSON structure (segments to be added are in green)

 

{
  "id": "d0f032db-9579-443e-a2ac-6add937f4aa2",
  "requestType": "Hold",
  "requestDate": "2021-09-06T15:37:55.000+00:00",
  "requesterId": "bec20636-fb68-41fd-84ea-2cf910673599",
  "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",
  "status": "Open - Not yet filled",
  "item": {
    "title": "A semantic web primer",
    "barcode": "90000",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ],
    "holdingsRecordId": "e3ff6133-b9a2-4d4c-a1c9-dc1867d4df19",
    "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
    "location": {
      "name": "Annex",
      "libraryName": "Datalogisk Institut",
      "code": "KU/CC/DI/A"
    },
    "contributorNames": [
      {
        "name": "Antoniou, Grigoris"
      },
      {
        "name": "Van Harmelen, Frank"
      }
    ],
    "enumeration": "",
    "status": "Checked out",
    "callNumber": "TK5105.88815 . A58 2004 FT MEADE",
    "callNumberComponents": {
      "callNumber": "TK5105.88815 . A58 2004 FT MEADE"
    }
  },
  "requester": {
    "lastName": "morty",
    "firstName": "panic",
    "barcode": "456",
    "patronGroupId": "3684a786-6671-4268-8ed0-9db82ebca60b"
  },
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
  "metadata": {
    "createdDate": "2021-09-06T15:37:56.188+00:00",
    "createdByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5",
    "updatedDate": "2021-09-06T15:37:56.188+00:00",
    "updatedByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5"
  },
  "position": 1,
  "loan": {
    "dueDate": "2021-09-06T16:36:56.029Z"
  },
  "pickupServicePoint": {
    "name": "Circ Desk 2",
    "code": "cd2",
    "discoveryDisplayName": "Circulation Desk -- Back Entrance",
    "description": null,
    "shelvingLagTime": null,
    "pickupLocation": true
  }
}

 

{
  "id": "d0f032db-9579-443e-a2ac-6add937f4aa2",
  "requestLevel": "Item",
  "requestType": "Hold",
  "requestDate": "2021-09-06T15:37:55.000+00:00",
  "requesterId": "bec20636-fb68-41fd-84ea-2cf910673599",
  "status": "Open - Not yet filled",
  "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39",
  "instance": {
    "title": "A semantic web primer",
    "identifiers": [
      {
        "value": "0262012103",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "9780262012102",
        "identifierTypeId": "8261054f-be78-422d-bd51-4ed9f33c3422"
      },
      {
        "value": "2003065165",
        "identifierTypeId": "c858e4f2-2b6b-4385-842b-60732ee14abb"
      }
    ],
    "contributorNames": [
      {
        "name": "Antoniou, Grigoris"
      },
      {
        "name": "Van Harmelen, Frank"
      }
    ],

    "publication":  [ 
      {
        "publisher": "Shaker Verlag",

        "place": "Aachen",

        "dateOfPublication": "2017",

        "role": null
      } 
     ],

     "editions":  [ 
        "First edition", "Revised edition, 2005" 
     ]

  },
  "holdingsRecordId": "dc8ff78d-6bf0-406a-95e2-be3782357535",
  "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",
  "item": {
    "barcode": "90000",
    "holdingsRecordId": "e3ff6133-b9a2-4d4c-a1c9-dc1867d4df19",
    "location": {
      "name": "Annex",
      "libraryName": "Datalogisk Institut",
      "code": "KU/CC/DI/A"
    },
    "enumeration": "",
    "status": "Checked out",
    "callNumber": "TK5105.88815 . A58 2004 FT MEADE",
    "callNumberComponents": {
      "callNumber": "TK5105.88815 . A58 2004 FT MEADE"
    }
  },
  "requester": {
    "lastName": "morty",
    "firstName": "panic",
    "barcode": "456",
    "patronGroupId": "3684a786-6671-4268-8ed0-9db82ebca60b"
  },
  "fulfilmentPreference": "Hold Shelf",
  "pickupServicePointId": "c4c90014-c8c9-4ade-8f24-b5e313319f4b",
  "metadata": {
    "createdDate": "2021-09-06T15:37:56.188+00:00",
    "createdByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5",
    "updatedDate": "2021-09-06T15:37:56.188+00:00",
    "updatedByUserId": "226dfeeb-0264-57fc-afcd-d5df2d705dd5"
  },
  "position": 1,
  "loan": {
    "dueDate": "2021-09-06T16:36:56.029Z"
  },
  "pickupServicePoint": {
    "name": "Circ Desk 2",
    "code": "cd2",
    "discoveryDisplayName": "Circulation Desk -- Back Entrance",
    "description": null,
    "shelvingLagTime": null,
    "pickupLocation": true
  }
}

 

Proposed JSON structure for request from UI side

{     "id": "df45dc97-32c9-458f-9b32-2c1ea8e73159",     "requestLevel": "Item",     "requestType": "Hold",     "fulfilmentPreference": "Hold Shelf",     "item": {         "barcode": "90000"     },     "itemId": "100d10bf-2f06-4aa0-be15-0b95b2d9f9e3",     "requester": {         "barcode": "11111"     },     "requestDate": "2021-10-19T12:54:47Z",     "requesterId": "503ea8a5-fdd0-4c7a-b38d-9bdf2368f869",     "pickupServicePointId": "3a40852d-49fd-4df2-a1f9-6e2641a6e91f",     "instanceId": "5bf370e0-8cca-4d9c-82e4-5170ab2a0a39" }