Advertisement
Guest User

Untitled

a guest
Aug 5th, 2024
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | None | 0 0
  1. from datetime import datetime, timezone
  2. from flask_login import UserMixin
  3. from app import db
  4. from itsdangerous.url_safe import URLSafeTimedSerializer
  5.  
  6. from typing import Optional
  7. import sqlalchemy as sa
  8. import sqlalchemy.orm as so
  9.  
  10.  
  11.  
  12.  
  13. #user_mixin still used?
  14. class User(UserMixin, db.Model):
  15.     '''
  16.    one to many relationship between both tables.
  17.    The One relationship.
  18.    '''
  19.     id: so.Mapped[int] = so.mapped_column(primary_key=True)
  20.     # unique blocks the same username
  21.     # I can't have Nullable=False because it will make me add the columns everytime I add a column in User table    
  22.     username: so.Mapped[str] = so.mapped_column(sa.String(80), index=True, unique=True)
  23.     hashed_password:  so.Mapped[str] = so.mapped_column(sa.String(128))
  24.     email: so.Mapped[str] = so.mapped_column(sa.String(120), index=True, unique=True)
  25.     registration_confirmation_email: so.Mapped[bool] = so.mapped_column(sa.Boolean, default=False)
  26.     profile_pic_name: so.Mapped[Optional[str]] = so.mapped_column(sa.String())
  27.     '''Might not be needed'''
  28.     #route_salt:  so.Mapped[Optional[str]] = so.mapped_column(sa.String())
  29.     route_token_1: so.Mapped[Optional[str]] = so.mapped_column(sa.String())  
  30.     route_token_2: so.Mapped[Optional[str]] = so.mapped_column(sa.String())
  31.  
  32.     # used to be VerificationEmailToken
  33.     email_token: so.Mapped[Optional[str]] = so.mapped_column(sa.String())    
  34.     time_token_created: so.Mapped[Optional[datetime]] = so.mapped_column(index=True)
  35.     time_token_expired: so.Mapped[Optional[datetime]] = so.mapped_column(index=True)
  36.     route_token: so.Mapped[Optional[str]] = so.mapped_column(sa.String())
  37.     attempts_token_tried: so.Mapped[int] = so.mapped_column(sa.Integer, default=0)
  38.    
  39.     # relationship connects the tables.
  40.     #rel_verification_email_token: so.WriteOnlyMapped["VerificationEmailToken"] = so.relationship(back_populates="rel_user")  
  41.     rel_posts: so.WriteOnlyMapped['Posts'] = so.relationship(back_populates='rel_user')
  42.     rel_payments: so.WriteOnlyMapped['Payments'] = so.relationship(back_populates='rel_user')
  43.  
  44.  
  45.  
  46.     def __repr__(self):
  47.         return '<User {}>'.format(self.username)
  48.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement