DCB contracts guidelines
1) DCB should send valid itemId and barcode if it is a real item. (lender role)
2) DCB should send valid userId and userBarcode if it is a real user. (borrower, borrowing-pickup role)
3) In case of virtual item, DCB should send same itemId for item barcode even if they are two different transactions. (Reason : Virtual item will be created only once if the itemId doesn't exist otherwise mod-dcb will reuse the existing virtual item)
4) In case of virtual patron, DCB should send same patronId for patron barcode even if they are two different transactions. (Reason : Virtual patron will be created only once if patron with same barcode and id doesn't exist otherwise mod-dcb will reuse the existing virtual user)
5) For borrowing-pickup and pickup role , servicePointId, servicePointName in Pickup object should be valid(exists in FOLIO)
6) For lender and pickup role, dcb should send a valid Patron group
7) For borrower, borrowing-pickup and pickup role, if dcb sends the materialType, then it should be valid otherwise mod-dcb will create the materialType with defaultValue book (Assuming that book will exist in Folio)
8) The name of the service point will looks like DCB_librarycode_servicePointName where librarycode identifies the pickup library and servicePointName identifies the pickup service point.