import asyncio import orm import psycopg2 import datetime import pydantic from passlib.context import CryptContext from App.modelInit import database, models pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") class User(orm.Model): tablename = "users" registry = models fields = { "id": orm.Integer(primary_key=True), "name": orm.String(max_length=100, index=True), "email": orm.String(max_length=100, index=True, unique=True), "password": orm.String(max_length=100, index=True), "phoneNumber": orm.String(max_length=100, index=True, allow_null=True), "account_type": orm.Integer(index=True, default=1), "createdAt": orm.DateTime(index=True, default=datetime.datetime.now), "updatedAt": orm.DateTime(index=True, default=datetime.datetime.now), "lastLogin": orm.DateTime(index=True, default=datetime.datetime.now), } def verify_password(self, plain_password): return pwd_context.verify(plain_password, self.password)