Coverage for app / models / user.py: 100%

21 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-26 21:50 +0000

1from sqlalchemy import Column, Integer, String, Date, Enum, TIMESTAMP, Interval 

2from sqlalchemy.sql import func 

3from sqlalchemy.orm import relationship 

4from enum import Enum as PyEnum 

5from app.database import Base 

6 

7 

8class TaskPreferenceEnum(PyEnum): 

9 shortest_first = "shortest_first" 

10 easiest_first = "easiest_first" 

11 importance_first = "importance_first" 

12 due_date_first = "due_date_first" 

13 

14# class TaskReminderMethodEnum(PyEnum): # Only email is implemented currently 

15# email = "email" 

16# sms = "sms" 

17# push_notification = "push_notification" 

18 

19class User(Base): 

20 __tablename__ = "users" 

21 

22 id = Column(Integer, primary_key=True) 

23 name = Column(String(255), nullable=False) 

24 date_of_birth = Column(Date, nullable=False) 

25 task_preference = Column( 

26 Enum(TaskPreferenceEnum, name="task_preference_enum"), 

27 default=TaskPreferenceEnum.importance_first, 

28 ) 

29 from datetime import timedelta 

30 

31 # task_reminder_interval = Column(Interval, default=timedelta(days=1)) 

32 # task_reminder_method = Column( 

33 # Enum(TaskReminderMethodEnum, name="task_reminder_method_enum"), 

34 # default=TaskReminderMethodEnum.email, 

35 # ) 

36 email = Column(String(255), unique=True) 

37 phone_number = Column(String(20), unique=True) 

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

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

40 # notifications = relationship("Notification", back_populates="user")