Skip to content
This repository has been archived by the owner on Nov 4, 2024. It is now read-only.

Commit

Permalink
FEXPCMN-14 - Bulk edit: holdings locations - Update schemas
Browse files Browse the repository at this point in the history
  • Loading branch information
siarhei-charniak committed Aug 23, 2022
1 parent 8af6da6 commit 8da6d2c
Show file tree
Hide file tree
Showing 19 changed files with 576 additions and 2 deletions.
5 changes: 5 additions & 0 deletions examples/bulk-edit/holdingsContentUpdate.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"option": "TEMPORARY_LOCATION",
"action": "CLEAR_FIELD",
"value": "SECOND FLOOR"
}
14 changes: 14 additions & 0 deletions examples/bulk-edit/holdingsContentUpdateCollection.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"holdingsContentUpdates": [
{
"option": "TEMPORARY_LOCATION",
"action": "CLEAR_FIELD"
},
{
"option": "PERMANENT_LOCATION",
"action": "REPLACE_WITH",
"value": "Main Library"
}
],
"totalRecords": 2
}
3 changes: 2 additions & 1 deletion schemas/bulk-edit/entityType.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
"type": "string",
"enum": [
"USER",
"ITEM"
"ITEM",
"HOLDINGS_RECORD"
]
}
}
34 changes: 34 additions & 0 deletions schemas/bulk-edit/holdingsContentUpdate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Holdings record content update",
"HoldingsContentUpdate": {
"type": "object",
"properties": {
"option": {
"description": "Option to change",
"type": "string",
"enum": [
"PERMANENT_LOCATION",
"TEMPORARY_LOCATION"
]
},
"action": {
"description": "Changing action",
"type": "string",
"enum": [
"CLEAR_FIELD",
"REPLACE_WITH"
]
},
"value": {
"description": "Update value",
"type": "object"
}
},
"required": [
"option",
"action"
],
"additionalProperties": false
}
}
25 changes: 25 additions & 0 deletions schemas/bulk-edit/holdingsContentUpdateCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of holdings records content updates",
"HoldingsContentUpdateCollection": {
"type": "object",
"properties": {
"holdingsContentUpdates": {
"description": "List of item content updates",
"type": "array",
"items": {
"$ref": "holdingsContentUpdate.json#/HoldingsContentUpdate"
},
"minItems": 1
},
"totalRecords": {
"type": "integer"
}
},
"required": [
"holdingsContentUpdates",
"totalRecords"
],
"additionalProperties": false
}
}
3 changes: 2 additions & 1 deletion schemas/bulk-edit/identifierType.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
"ACCESSION_NUMBER",
"HOLDINGS_RECORD_ID",
"USER_NAME",
"EXTERNAL_SYSTEM_ID"
"EXTERNAL_SYSTEM_ID",
"INSTANCE_HRID"
]
}
}
26 changes: 26 additions & 0 deletions schemas/inventory/holdingsNote.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "Note for holdings record",
"HoldingsNote": {
"type": "object",
"additionalProperties": false,
"properties": {
"holdingsNoteTypeId": {
"type": "string",
"description": "ID of the type of note"
},
"holdingsNoteType": {
"description": "expanded note-type object corresponding to holdingsNoteTypeId",
"$ref": "holdingsNoteType.json#/HoldingsNoteType"
},
"note": {
"type": "string",
"description": "Text content of the note"
},
"staffOnly": {
"type": "boolean",
"description": "If true, determines that the note should not be visible for others than staff"
}
}
}
}
32 changes: 32 additions & 0 deletions schemas/inventory/holdingsNoteType.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A holdings note type",
"HoldingsNoteType": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "unique ID of the holdings note type; a UUID"
},
"name": {
"type": "string",
"description": "name of the holdings note type"
},
"source": {
"type": "string",
"description": "label indicating where the holdings note type entry originates from, i.e. 'folio' or 'local'"
},
"metadata": {
"type": "object",
"$ref": "../common/metadata.json#/Metadata",
"readonly": true
}
},
"additionalProperties": false,
"required": [
"name",
"source"
]
}
}

185 changes: 185 additions & 0 deletions schemas/inventory/holdingsRecord.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A holdings record",
"HoldingsRecord": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "the unique ID of the holdings record; UUID"
},
"_version": {
"type": "integer",
"description": "Record version for optimistic locking"
},
"hrid": {
"type": "string",
"description": "the human readable ID, also called eye readable ID. A system-assigned sequential ID which maps to the Instance ID"
},
"holdingsTypeId": {
"type": "string",
"description": "unique ID for the type of this holdings record, a UUID"
},
"formerIds": {
"type": "array",
"description": "Previous ID(s) assigned to the holdings record",
"items": {
"type": "string"
}
},
"instanceId": {
"description": "Inventory instances identifier",
"type": "string"
},
"permanentLocationId": {
"type": "string",
"description": "The permanent shelving location in which an item resides."
},
"permanentLocation": {
"description": "The permanent shelving location in which an item resides",
"$ref": "location.json#/ItemLocation"
},
"temporaryLocationId": {
"type": "string",
"description": "Temporary location is the temporary location, shelving location, or holding which is a physical place where items are stored, or an Online location."
},
"effectiveLocationId": {
"type": "string",
"description": "Effective location is calculated by the system based on the values in the permanent and temporary locationId fields."
},
"electronicAccess": {
"description": "List of electronic access items",
"type": "array",
"items": {
"$ref": "electronicAccess.json#/ElectronicAccess"
}
},
"callNumberTypeId": {
"type": "string",
"description": "unique ID for the type of call number on a holdings record, a UUID"
},
"callNumberPrefix": {
"type": "string",
"description": "Prefix of the call number on the holding level."
},
"callNumber": {
"type": "string",
"description": "Call Number is an identifier assigned to an item, usually printed on a label attached to the item."
},
"callNumberSuffix": {
"type": "string",
"description": "Suffix of the call number on the holding level."
},
"shelvingTitle": {
"type": "string",
"description": "Indicates the shelving form of title."
},
"acquisitionFormat": {
"type": "string",
"description": "Format of holdings record acquisition"
},
"acquisitionMethod": {
"type": "string",
"description": "Method of holdings record acquisition"
},
"receiptStatus": {
"type": "string",
"description": "Receipt status (e.g. pending, awaiting receipt, partially received, fully received, receipt not required, and cancelled)"
},
"administrativeNotes":{
"type": "array",
"description": "Administrative notes",
"items": {
"type": "string"
}
},
"notes": {
"type": "array",
"description": "Notes about action, copy, binding etc.",
"items": {
"$ref": "holdingsNote.json#/HoldingsNote"
}
},
"illPolicyId": {
"type": "string",
"description": "unique ID for an ILL policy, a UUID"
},
"illPolicy": {
"description": "expanded ILL Policy object corresponding to illPolicyId",
"$ref": "illPolicy.json#/IllPolicy"
},
"retentionPolicy": {
"type": "string",
"description": "Records information regarding how long we have agreed to keep something."
},
"digitizationPolicy": {
"description": "Records information regarding digitization aspects.",
"type": "string"
},
"holdingsStatements": {
"description": "Notes about action, copy, binding etc.",
"type": "array",
"items": {
"$ref": "holdingsStatement.json#/HoldingsStatement"
}
},
"holdingsStatementsForIndexes": {
"description": "Holdings record indexes statements",
"type": "array",
"items": {
"$ref": "holdingsStatement.json#/HoldingsStatement"
}
},
"holdingsStatementsForSupplements": {
"description": "Holdings record supplements statements",
"type": "array",
"items": {
"$ref": "holdingsStatement.json#/HoldingsStatement"
}
},
"copyNumber": {
"type": "string",
"description": "Item/Piece ID (usually barcode) for systems that do not use item records. Ability to designate the copy number if institution chooses to use copy numbers."
},
"numberOfItems": {
"type": "string",
"description": "Text (Number)"
},
"receivingHistory": {
"description": "Receiving history of holdings record",
"$ref": "receivingHistoryEntries.json#/ReceivingHistoryEntries"
},
"discoverySuppress": {
"type": "boolean",
"description": "records the fact that the record should not be displayed in a discovery system"
},
"statisticalCodeIds": {
"type": "array",
"description": "List of statistical code IDs",
"items": {
"type": "string"
}
},
"tags": {
"description": "arbitrary tags associated with this holding",
"id": "tags",
"type": "object",
"$ref": "../common/tags.json#/Tags"
},
"metadata": {
"type": "object",
"$ref": "../common/metadata.json#/Metadata"
},
"sourceId": {
"description": "(A reference to) the source of a holdings record",
"type": "string"
}
},
"additionalProperties": false,
"required": [
"instanceId",
"permanentLocationId"
]
}
}

22 changes: 22 additions & 0 deletions schemas/inventory/holdingsRecordCollection.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"description": "A collection of holdings records",
"HoldingsRecordCollection": {
"type": "object",
"properties": {
"items": {
"description": "List of holdings records",
"type": "array",
"items": {
"$ref": "holdingsRecord.json#/HoldingsRecord"
}
},
"totalRecords": {
"type": "integer"
},
"resultInfo": {
"$ref": "../common/resultInfo.json#/ResultInfo"
}
}
}
}
Loading

0 comments on commit 8da6d2c

Please sign in to comment.