diff options
Diffstat (limited to 'app/models.py')
-rw-r--r-- | app/models.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/models.py b/app/models.py new file mode 100644 index 0000000..97d1e35 --- /dev/null +++ b/app/models.py @@ -0,0 +1,31 @@ +from sqlalchemy import Column, Integer, String, Boolean, ForeignKey +from sqlalchemy.orm import relationship +from sqlalchemy.sql.expression import text +from sqlalchemy.sql.sqltypes import TIMESTAMP +from .database import Base + +class Post(Base): + __tablename__= "posts" + + id = Column(Integer, primary_key=True, nullable=False) + title = Column(String, nullable=False) + content = Column(String, nullable=False) + published = Column(Boolean, server_default="true", nullable=False) + created_at = Column(TIMESTAMP(timezone=True), nullable=False, server_default=text('now()') ) + + owner_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False) + owner = relationship("User") #Fetcib owner_id põhjal( see foreign key) vastava Posti teinud User callsi useri + +class User(Base): + __tablename__ = "users" + + id = Column(Integer, primary_key=True, nullable=False) + email = Column(String, nullable=False, unique = True) + password = Column(String, nullable=False) + created_at = Column(TIMESTAMP(timezone=True), nullable=False, server_default=text('now()') ) + + +class Vote(Base): + __tablename__ = "votes" + user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), primary_key=True) + post_id = Column(Integer, ForeignKey("posts.id", ondelete="CASCADE"), primary_key=True) |