from sqlalchemy import Column, Integer, VARCHAR, String, ForeignKey from sqlalchemy.orm import relationship from app.infrastructure.database.models import Base class Course(Base): __tablename__ = 'courses' id = Column(Integer, primary_key=True, autoincrement=True) title = Column(VARCHAR(200), nullable=False) description = Column(String, nullable=False) category_id = Column(Integer, ForeignKey('categories.id'), nullable=False) owner_user_id = Column(Integer, ForeignKey('users.id'), nullable=False) category = relationship('Category', back_populates='courses') owner_user = relationship('User', back_populates='owned_courses') students = relationship('CourseStudent', back_populates='course') notifications = relationship('Notification', back_populates='course') lessons = relationship('Lesson', back_populates='course')