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
« 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
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"
14# class TaskReminderMethodEnum(PyEnum): # Only email is implemented currently
15# email = "email"
16# sms = "sms"
17# push_notification = "push_notification"
19class User(Base):
20 __tablename__ = "users"
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
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")