% Biblatex-GOST data model

\DeclareDatamodelFields[type=field, datatype=literal]{
  book,
  books,parts,issues,
  volsorder,
  sortvolume,
  systemreq,
  publication,
  ipc,
  reqnumber,
  prnumber,
  prcountry,
  major,
  majorcode,
  heading,
}

\DeclareDatamodelFields[type=field, datatype=date, skipout]{
  update,
  prdate,
  publdate,
}

\DeclareDatamodelFields[type=field, datatype=integer]{
  upday,upmonth,upyear,
  prday,prmonth,pryear,
  publday,publmonth,publyear,
}

\DeclareDatamodelFields[type=list, datatype=name]{
  booktranslator,
  bookcommentator,
  bookannotator,
  bookintroduction,
  bookforeword,
  bookafterword,
}

\DeclareDatamodelFields[type=field, datatype=key]{
  media,
  bookoriglanguage,
}

\DeclareDatamodelFields[type=list, datatype=literal]{
  specdata,
  credits,
  bookcredits,
  editioncredits,
}

\DeclareDatamodelEntryfields{
  media,
  credits,
  editioncredits,
  specdata,
  volsorder,
  heading,
}

\DeclareDatamodelEntryfields[article]{
  journalcredits,
}

\DeclareDatamodelEntryfields[book,collection,proceedings,reference]{
  book,
  books,parts,issues,
  sortvolume,
}

\DeclareDatamodelEntryfields[mvbook,mvcollection,mvproceedings,mvreference]{
  books,parts,issues,
}

\DeclareDatamodelEntryfields[inbook,incollection,inproceedings,inreference,bookinbook,suppbook,suppcollection]{
  booktranslator,
  bookcommentator,
  bookannotator,
  bookintroduction,
  bookforeword,
  bookafterword,
  bookoriglanguage,
  bookcredits,
}

\DeclareDatamodelEntryfields[thesis]{
  major,majorcode,
}

\DeclareDatamodelEntryfields[online]{
  update,systemreq,
}

\DeclareDatamodelEntryfields[patent]{
  prday,prmonth,pryear,
  publday,publmonth,publyear,
  publication,reqnumber,ipc,prnumber,prcountry,
}

\DeclareDatamodelConstraints{
  \constraint[type=data, datatype=date]{
    \constraintfield{update}
    \constraintfield{prdate}
    \constraintfield{publdate}
  }
}

\endinput