Skip to content
Snippets Groups Projects
model 2.05 KiB
Newer Older
Preface:
All dates are ISO-8601 strings, as JATS allows for this.
All groups of users are modelled with Teams

Jure's avatar
Jure committed
// Journal (Collection)

id: ID!
journalTitle: String! // JATS uses <journal-title> element
created: String // non-semantic, date
updated: String // non-semantic, date
owners: [ID] // ?? // non-semantic
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
originaSubmissionDate: String // date, JATS uses a date element where date-type is unrestricted
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]
recommendation: Recommendation
submitted: String

// Recommendation
Jure's avatar
Jure committed

recommendation: String // ( accept | revise | etc. )
userId: ID! // Link to Reviewer
comment: Comment {
  content: String
  public: Boolean
}
Jure's avatar
Jure committed