rankora-api / app /models /user.py
Shoaib898's picture
Deploy Rankora API (clean bundle)
53febb9 verified
Raw
History Blame Contribute Delete
1.14 kB
from sqlalchemy import Column, String, Boolean, Integer, DateTime
from sqlalchemy.sql import func
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy import text
from app.database import Base
import uuid
class User(Base):
__tablename__ = "users"
id = Column(String(36), primary_key=True, default=lambda: str(uuid.uuid4()))
email = Column(String(255), unique=True, nullable=False)
password_hash = Column(String(255), nullable=True) # null for Google-only accounts
full_name = Column(String(255), nullable=True)
auth_provider = Column(String(20), default="email") # email | google
firebase_uid = Column(String(128), nullable=True, index=True)
plan = Column(String(20), default="free")
monthly_searches = Column(Integer, default=0)
search_limit = Column(Integer, default=50)
is_active = Column(Boolean, default=True)
is_verified = Column(Boolean, default=False)
token_version = Column(Integer, default=0)
created_at = Column(DateTime(timezone=True), server_default=func.now())
updated_at = Column(DateTime(timezone=True), onupdate=func.now())