add TUVote SQLAlchemy ORM model

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-06-11 22:14:38 -07:00
parent 8c345a0448
commit 0c1241f8bb
2 changed files with 99 additions and 0 deletions

43
aurweb/models/tu_vote.py Normal file
View file

@ -0,0 +1,43 @@
from sqlalchemy import Column, ForeignKey, Integer
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import backref, relationship
import aurweb.models.tu_voteinfo
import aurweb.models.user
from aurweb.models.declarative import Base
class TUVote(Base):
__tablename__ = "TU_Votes"
VoteID = Column(Integer, ForeignKey("TU_VoteInfo.ID", ondelete="CASCADE"),
nullable=False)
VoteInfo = relationship(
"TUVoteInfo", backref=backref("tu_votes", lazy="dynamic"),
foreign_keys=[VoteID])
UserID = Column(Integer, ForeignKey("Users.ID", ondelete="CASCADE"),
nullable=False)
User = relationship(
"User", backref=backref("tu_votes", lazy="dynamic"),
foreign_keys=[UserID])
__mapper_args__ = {"primary_key": [VoteID, UserID]}
def __init__(self,
VoteInfo: aurweb.models.tu_voteinfo.TUVoteInfo = None,
User: aurweb.models.user.User = None):
self.VoteInfo = VoteInfo
if self.VoteInfo is None:
raise IntegrityError(
statement="Foreign key VoteID cannot be null.",
orig="TU_Votes.VoteID",
params=("NULL"))
self.User = User
if self.User is None:
raise IntegrityError(
statement="Foreign key UserID cannot be null.",
orig="TU_Votes.UserID",
params=("NULL"))