import uuid from datetime import datetime from sqlalchemy import Column, String, Integer, DateTime, Text, Boolean, ForeignKey from sqlalchemy.dialects.postgresql import UUID from sqlalchemy.orm import relationship from app.database import Base class Lesson(Base): __tablename__ = "lessons" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) title = Column(String(255), nullable=False) content = Column(Text, nullable=False) category = Column(String(50)) difficulty = Column(String(20)) duration_min = Column(Integer, default=5) order_num = Column(Integer) is_premium = Column(Boolean, default=False) class UserLesson(Base): __tablename__ = "user_lessons" id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4) user_id = Column(UUID(as_uuid=True), ForeignKey("users.id"), nullable=False) lesson_id = Column(UUID(as_uuid=True), ForeignKey("lessons.id"), nullable=False) completed_at = Column(DateTime, default=datetime.utcnow) user = relationship("User", back_populates="completed_lessons") lesson = relationship("Lesson")