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

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 

6 

7 

8class MoodleTask(Base): 

9 __tablename__ = "moodletasks" 

10 

11 id = Column(Integer, primary_key=True) 

12 user_id = Column( 

13 Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False 

14 ) 

15 

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) 

20 

21 approved = Column(Boolean, nullable=True) 

22 approved_at = Column(TIMESTAMP, nullable=True) 

23 

24 due_at = Column(TIMESTAMP, default=lambda: datetime.now(UTC) + timedelta(days=1)) 

25 

26 created_at = Column(TIMESTAMP, server_default=func.now()) 

27 updated_at = Column(TIMESTAMP, server_default=func.now(), onupdate=func.now()) 

28 

29 user = relationship("User", backref="moodletasks")