from sqlalchemy import Column, Integer, String, DateTime from datetime import datetime from app.db.base import Base class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) email = Column(String, unique=True, index=True, nullable=False) password_hash = Column(String, nullable=False) first_name = Column(String, nullable=True) last_name = Column(String, nullable=True) phone = Column(String, nullable=True) bio = Column(String, nullable=True) preferred_language = Column(String, default="en") timezone = Column(String, default="UTC") created_at = Column(DateTime(timezone=True), nullable=True) updated_at = Column(DateTime(timezone=True), nullable=True) def __init__(self, **kwargs): super().__init__(**kwargs) if not self.created_at: self.created_at = datetime.utcnow() if not self.updated_at: self.updated_at = datetime.utcnow()