Skip to content
Snippets Groups Projects
model 2.09 KiB
Newer Older
Preface:
Jure's avatar
Jure committed
- All groups of users are modelled with Teams
- All models have non-semantic 'created' and 'updated' dates
- All dates are ISO-8601 strings, as JATS allows for this.
Jure's avatar
Jure committed
// Journal (Collection)

id: ID!
journalTitle: String! // JATS uses <journal-title> element
Jure's avatar
Jure committed
// owners: [ID] // ?? // DELETED: the owners relationship is non-core and will be deprecated/removed
Jure's avatar
Jure committed
articles: [ID] // ??
meta: JournalMetadata {
  publisherName: String // JATS uses <publisher-name> element
  issn: String // JATS uses <issn> element
}
Jure's avatar
Jure committed

// Article (Fragment)

id: ID!
journalId: ID! // Link to Journal
Jure's avatar
Jure committed
// originalSubmissionDate: String // DELETED, original submission date is the first versions's submission date
versions: [ID!] // Link to Versions
Jure's avatar
Jure committed

// ArticleVersion
Jure's avatar
Jure committed

id: ID!
submissionDate: String // date
Jure's avatar
Jure committed
status: String
reviewers: [Reviewer]
files: [String] // JATS uses the ext-link element for external files
Jure's avatar
Jure committed
recommendations: [Recommendation]
decision: Decision
meta: ArticleMetadata {
  title: String // JATS uses the <title> element
  abstract: String // JATS uses the <abstract> element
  contributors: [Contributor] { // JATS uses the <contrib> element
    stringName: String // JATS uses the <string-name> element
    givenNames: String // JATS uses the <givenNames> element
    surname: String // JATS uses the <surname> element
    // middleName: String DELETED (JATS recommends using <given-names> elements instead)
    aff: String // JATS uses the <aff> element
  }
  authorNote: String
  publicationDate: String // date
}
Jure's avatar
Jure committed

// Decision

status: String // e.g. 'accept'
submissionDate: String // date
Jure's avatar
Jure committed
content: String
files: [String]
userId: Id // Link to the editor's user

// Reviewer

invitationDate: String // date
Jure's avatar
Jure committed
review: ID // Link to Review
accepted: Boolean
responseDate: String // date
Jure's avatar
Jure committed
userId: ID
reminders: [String] // dates
Jure's avatar
Jure committed

// Review

id: ID!
versionId: ID! // Link to Version
Jure's avatar
Jure committed
reviewerId: ID! // Link to Reviewer
content: String
files: [String]
Jure's avatar
Jure committed
recommendation: Recommendation {
  recommendation: String // ( accept | revise | etc. )
  comment: Comment {
    content: String
    public: Boolean
  }
}
submissionDate: String // date