File size: 1,688 Bytes
ef1ad9e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from typing import Any

from sqlalchemy import Column, DateTime, Integer, String
from sqlalchemy.dialects import postgresql
from sqlalchemy.orm import declarative_base
from sqlalchemy.sql import func

from app.models.base import Base
from app.utils.utility import to_dict


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)