Coverage for app / models / moodleTask.py: 100%
19 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-26 21:50 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-26 21:50 +0000
1from sqlalchemy import Column, Integer, String, Boolean, TIMESTAMP, ForeignKey, text
2from sqlalchemy.sql import func
3from sqlalchemy.orm import relationship
4from app.database import Base
5from datetime import datetime, timedelta, UTC
8class MoodleTask(Base):
9 __tablename__ = "moodletasks"
11 id = Column(Integer, primary_key=True)
12 user_id = Column(
13 Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False
14 )
16 course_name = Column(String(255), nullable=False)
17 activity = Column(String(255), nullable=False)
18 title = Column(String(255), nullable=False)
19 reference_url = Column(String(255), nullable=False)
21 approved = Column(Boolean, nullable=True)
22 approved_at = Column(TIMESTAMP, nullable=True)
24 due_at = Column(TIMESTAMP, default=lambda: datetime.now(UTC) + timedelta(days=1))
26 created_at = Column(TIMESTAMP, server_default=func.now())
27 updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now())
29 user = relationship("User", backref="moodletasks")