Spaces:
Running
Running
| """UserPreference model for user settings.""" | |
| from datetime import datetime | |
| from sqlalchemy import Column, String, JSON, DateTime | |
| import uuid | |
| from src.config.database import Base | |
| class UserPreference(Base): | |
| """Represents user-specific preferences and settings.""" | |
| __tablename__ = "user_preferences" | |
| id = Column(String(36), primary_key=True, default=lambda: str(uuid.uuid4())) | |
| user_id = Column(String(255), nullable=False, unique=True, index=True) | |
| language = Column(String(10), default="en") | |
| personalization_settings = Column(JSON, default=dict) | |
| interface_config = Column(JSON, default=dict) | |
| created_at = Column(DateTime, default=datetime.utcnow) | |
| updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) | |
| def to_dict(self) -> dict: | |
| """Convert model to dictionary.""" | |
| return { | |
| "id": str(self.id), | |
| "user_id": self.user_id, | |
| "language": self.language, | |
| "personalization_settings": self.personalization_settings, | |
| "interface_config": self.interface_config, | |
| "created_at": self.created_at.isoformat() if self.created_at else None, | |
| "updated_at": self.updated_at.isoformat() if self.updated_at else None, | |
| } | |