video.py 878 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 sqlalchemy.sql import func
  5. from app.db.base_class import Base
  6. if TYPE_CHECKING:
  7. from .user import User # noqa: F401
  8. from .enum import Progress
  9. class Video(Base):
  10. id = Column(Integer, primary_key=True, index=True)
  11. title = Column(String(40), index=True, nullable=False)
  12. stored_filename = Column(String(30), unique=True, nullable=False)
  13. progress_state = Column(String(10),
  14. ForeignKey("progress.state", ondelete="RESTRICT", onupdate="CASCADE"),
  15. default="waiting")
  16. created_datetime = Column(DateTime(timezone=True), default=func.now())
  17. length = Column(Integer)
  18. owner_id = Column(Integer, ForeignKey("user.id"))
  19. owner = relationship("User", back_populates="videos")