Spaces:
Runtime error
Runtime error
| from enum import Enum as PyEnum | |
| from sqlalchemy import Column, DateTime, Enum, ForeignKey, Integer, String, func | |
| from sqlalchemy.orm import relationship | |
| from ._base import Base | |
| class ContentDeliveryFrequency(PyEnum): | |
| DAILY = "DAILY" | |
| WEEKLY = "WEEKLY" | |
| BI_WEEKLY = "BI_WEEKLY" | |
| MONTHLY = "MONTHLY" | |
| class User(Base): | |
| __tablename__ = "users" | |
| id = Column(Integer, primary_key=True, autoincrement=True, nullable=False) | |
| name = Column(String, nullable=False) | |
| content_delivery_frequency = Column( | |
| Enum(ContentDeliveryFrequency), | |
| nullable=False, | |
| default=ContentDeliveryFrequency.WEEKLY, | |
| ) | |
| slack_id = Column(String, nullable=True) | |
| slack_team_id = Column( | |
| Integer, | |
| ForeignKey("slack_teams.id"), | |
| nullable=True, | |
| ) | |
| email_id = Column(String, nullable=False, unique=True) | |
| last_message_sent_at = Column(DateTime, nullable=True) | |
| next_content_delivery_date = Column(DateTime, nullable=True) | |
| created_at = Column(DateTime, nullable=False, default=func.now()) | |
| slack_team = relationship("SlackTeam", back_populates="users") | |
| files = relationship("File", back_populates="user", cascade="all, delete-orphan") | |
| personalized_contents = relationship( | |
| "PersonalizedContent", back_populates="user", cascade="all, delete-orphan" | |
| ) | |
| def __repr__(self): | |
| return f"<User id={self.id}, name={self.name}, email_id={self.email_id}>" | |
| def to_dict(self): | |
| return { | |
| "id": self.id, | |
| "name": self.name, | |
| "content_delivery_frequency": self.content_delivery_frequency, | |
| "slack_id": self.slack_id, | |
| "slack_team_id": self.slack_team_id, | |
| "email_id": self.email_id, | |
| "last_message_sent_at": self.last_message_sent_at, | |
| "next_content_delivery_date": self.next_content_delivery_date, | |
| "created_at": self.created_at, | |
| } | |