video.py 812 B

1234567891011121314151617181920212223
  1. from typing import TYPE_CHECKING
  2. from sqlalchemy import Column, ForeignKey, Integer, String, Enum, DateTime
  3. from sqlalchemy.orm import relationship
  4. from app.db.base_class import Base
  5. if TYPE_CHECKING:
  6. from .user import User # noqa: F401
  7. from .enum import Progress
  8. class Video(Base):
  9. id = Column(Integer, primary_key=True, index=True)
  10. title = Column(String(40), index=True, nullable=False)
  11. stored_filename = Column(String(30), unique=True, nullable=False)
  12. progress_state = Column(String(10),
  13. ForeignKey("progress.state", ondelete="RESTRICT", onupdate="CASCADE"),
  14. default="waiting")
  15. created_datetime = Column(DateTime)
  16. length = Column(Integer)
  17. owner_id = Column(Integer, ForeignKey("user.id"))
  18. owner = relationship("User", back_populates="videos")