"""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, }