diff --git a/app/models/__init__.py b/app/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app/models/lesson.py b/app/models/lesson.py new file mode 100644 index 0000000..9c1b0a8 --- /dev/null +++ b/app/models/lesson.py @@ -0,0 +1,20 @@ +from sqlalchemy import ( + Column, + Integer, + Text, + ForeignKey, +) + +from sqlalchemy.orm import relationship + +from app.db.base_class import Base + + +class Lesson(Base): + id = Column(Integer, primary_key=True, index=True) + content = Column(Text, nullable=False) + context = Column(Text, nullable=False) + tags = Column(Text, nullable=False) + + submitter_id = Column(Integer, ForeignKey("user.id"), nullable=True) + submitter = relationship("User", back_populates="lessons") diff --git a/app/models/user.py b/app/models/user.py new file mode 100644 index 0000000..92cda2c --- /dev/null +++ b/app/models/user.py @@ -0,0 +1,18 @@ +from sqlalchemy import Integer, String, Column, Boolean +from sqlalchemy.orm import relationship + +from app.db.base_class import Base + + +class User(Base): + id = Column(Integer, primary_key=True, index=True) + first_name = Column(String(256), nullable=True) + surname = Column(String(256), nullable=True) + email = Column(String, index=True, nullable=False) + is_superuser = Column(Boolean, default=False) + lessons = relationship( + "Lesson", + cascade="all,delete-orphan", + back_populates="submitter", + uselist=True, + )