from sqlalchemy import Column, Integer, String, DateTime from sqlalchemy.dialects import postgresql from . import Base from typing import Any from app.utils.utility import to_dict from sqlalchemy.sql import func class User(Base): __tablename__ = "Users" userId = Column(Integer(), primary_key=True) firstName = Column(String(255)) lastName = Column(String(255)) email = Column(String(255)) password = Column(String(255)) phoneNumber = Column(String(255)) NMLS = Column(String(255)) lenderId = Column(Integer()) isActive = Column(postgresql.BIT(), default="1") googleOauthId = Column(String) isOnboardingCompleted = Column(postgresql.BIT(), default="0") organisationNMLS = Column(String(255)) isOrganisation = Column(postgresql.BIT(), default="0") verificationCode = Column(Integer()) isVerified = Column(postgresql.BIT(), default="0") lastLoginTime = Column(DateTime(timezone=True), default=func.now()) role = Column(String(50)) stateName = Column(String) stateId = Column(Integer) cityName = Column(String) zipCode = Column(String) address = Column(String) mortgageBrokerName = Column(String) dateOfBirth = Column(String) company = Column(String) branch = Column(String) employeeTypeId = Column(Integer) profilePicture = Column(String) createdAt = Column(DateTime(timezone=True), default=func.now()) updatedAt = Column(DateTime(timezone=True), default=func.now(), onupdate=func.now()) def dict(self) -> dict[str, Any]: return to_dict(self)