Module should provide a CRUD API for the Record entity.
The main representation of the marc\edifact\delimited record. It is something like a journal and store information about the date, type, and links into source record, parsed record, snapshot, metadata, and errors. It’s necessary to add indexes on all foreign keys for best performance. Type of record will be a part of the foreign key for a parsed record. If type of record is MARC, then storage should get parsed record from MarcRecord table and etc. A record should contain a matcherProfileId field. It is a foreign key on Matcher Profile entity and this relation should show us what matcher is triggered for this record. It should contain matched id. This field will represent entity relations with another marc records with the same id. It necessary to have for saving the history of applying changes for inventory\holding\etc records. Also, Record should have a generationId field. When import starts, storage should found last MarcRecord with such matchedId and set generation version + 1. When snapshot will be ready it should check another record with such generationId and notify the user about conflicts. The user should merge this records.
- Add schemas for Record/MarcRecord/ErrorRecord/SourceRecord
- Add tables to database
- Add endpoint definitions to the raml file
- Add implementations to the endpoints methods
- Create API tests for each endpoint