diff options
-rw-r--r-- | fatcat/models.py | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/fatcat/models.py b/fatcat/models.py index ee73d61e..f1fd31e3 100644 --- a/fatcat/models.py +++ b/fatcat/models.py @@ -18,7 +18,7 @@ from fatcat import db class WorkContrib(db.Model): __tablename__ = "work_contrib" work_rev= db.Column(db.ForeignKey('work_revision.id'), nullable=False, primary_key=True) - creator_id = db.Column(db.ForeignKey('creator_ident.id'), nullable=False, primary_key=True) + creator_ident_id = db.Column(db.ForeignKey('creator_ident.id'), nullable=False, primary_key=True) type = db.Column(db.String, nullable=True) stub = db.Column(db.String, nullable=True) @@ -28,7 +28,7 @@ class WorkContrib(db.Model): class ReleaseContrib(db.Model): __tablename__ = "release_contrib" release_rev = db.Column(db.ForeignKey('release_revision.id'), nullable=False, primary_key=True) - creator_id = db.Column(db.ForeignKey('creator_ident.id'), nullable=False, primary_key=True) + creator_ident_id = db.Column(db.ForeignKey('creator_ident.id'), nullable=False, primary_key=True) type = db.Column(db.String, nullable=True) stub = db.Column(db.String, nullable=True) @@ -39,7 +39,7 @@ class ReleaseRef(db.Model): __tablename__ = "release_ref" id = db.Column(db.Integer, primary_key=True, nullable=False) release_rev = db.Column(db.ForeignKey('release_revision.id'), nullable=False) - target_release_id = db.Column(db.ForeignKey('release_ident.id'), nullable=True) + target_release_ident_id = db.Column(db.ForeignKey('release_ident.id'), nullable=True) index = db.Column(db.Integer, nullable=True) stub = db.Column(db.String, nullable=True) doi = db.Column(db.String, nullable=True) @@ -51,7 +51,7 @@ class FileRelease(db.Model): __tablename__ = "file_release" id = db.Column(db.Integer, primary_key=True, nullable=False) file_rev= db.Column(db.ForeignKey('file_revision.id'), nullable=False) - release_id = db.Column(db.ForeignKey('release_ident.id'), nullable=False) + release_ident_id = db.Column(db.ForeignKey('release_ident.id'), nullable=False) release = db.relationship("ReleaseIdent") file = db.relationship("FileRevision") @@ -76,13 +76,24 @@ class WorkLog(db.Model): # ID is a monotonic int here; important for ordering! id = db.Column(db.Integer, primary_key=True, nullable=False) work_ident_id = db.Column(db.ForeignKey('work_ident.id'), nullable=False) - old_revision_id = db.Column(db.ForeignKey('work_revision.id'), nullable=True) - old_redirect_id = db.Column(db.ForeignKey('work_ident.id'), nullable=True) + #old_revision_id = db.Column(db.ForeignKey('work_revision.id'), nullable=True) + #old_redirect_id = db.Column(db.ForeignKey('work_ident.id'), nullable=True) new_revision_id = db.Column(db.ForeignKey('work_revision.id'), nullable=True) new_redirect_id = db.Column(db.ForeignKey('work_ident.id'), nullable=True) # TODO: is this right? edit_id = db.Column(db.ForeignKey('edit.id')) +class WorkEdit(db.Model): + __tablename__ = 'work_edit' + id = db.Column(db.Integer, primary_key=True, autoincrement=True) + ident_id = db.Column(db.ForeignKey('work_ident.id'), nullable=True) + revision_id = db.Column(db.ForeignKey('work_revision.id'), nullable=True) + redirect_id = db.Column(db.ForeignKey('work_ident.id'), nullable=True) + edit_group = db.Column(db.ForeignKey('edit_group.id'), nullable=True) + editor = db.Column(db.ForeignKey('editor.id'), nullable=False) + comment = db.Column(db.String, nullable=True) + extra_json = db.Column(db.ForeignKey('extra_json.sha1'), nullable=True) + class WorkRevision(db.Model): __tablename__ = 'work_revision' id = db.Column(db.Integer, primary_key=True) @@ -111,7 +122,7 @@ class ReleaseRevision(db.Model): extra_json = db.Column(db.ForeignKey('extra_json.sha1'), nullable=True) work_ident_id = db.ForeignKey('work_ident.id') - container_id = db.Column(db.ForeignKey('container_ident.id'), nullable=True) + container_ident_id = db.Column(db.ForeignKey('container_ident.id'), nullable=True) title = db.Column(db.String, nullable=False) license = db.Column(db.String, nullable=True) # TODO: oa status foreign key release_type = db.Column(db.String) # TODO: foreign key @@ -160,7 +171,7 @@ class ContainerRevision(db.Model): extra_json = db.Column(db.ForeignKey('extra_json.sha1'), nullable=True) name = db.Column(db.String) - #XXX: container_id = db.Column(db.ForeignKey('container_ident.id')) + #XXX: container_ident_id = db.Column(db.ForeignKey('container_ident.id')) publisher = db.Column(db.String) # TODO: foreign key sortname = db.Column(db.String) issn = db.Column(db.String) # TODO: identifier table @@ -184,7 +195,6 @@ class FileRevision(db.Model): url = db.Column(db.Integer) # TODO: URL table releases = db.relationship('FileRelease', lazy='subquery') - #backref=db.backref('backrefs', lazy=True)) class Edit(db.Model): __tablename__ = 'edit' @@ -193,10 +203,11 @@ class Edit(db.Model): editor = db.Column(db.ForeignKey('editor.id'), nullable=False) comment = db.Column(db.String, nullable=True) extra_json = db.Column(db.ForeignKey('extra_json.sha1'), nullable=True) - # WARNING: polymorphic. Represents the id that should end up pointing to + # WARNING: polymorphic. Represents the ident that should end up pointing to # this revision. - # TODO: this doesn't work - entity_id = db.Column(db.Integer, nullable=True) + entity_ident = db.Column(db.Integer, nullable=True) + entity_rev = db.Column(db.Integer, nullable=True) + entity_redirect = db.Column(db.Integer, nullable=True) class EditGroup(db.Model): __tablename__ = 'edit_group' |