Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # root/backend/api/models/models.py
- from datetime import datetime
- from pydantic import BaseModel, Field
- from sqlalchemy import Column, Integer, String, DateTime, ForeignKey
- from api.database.database import Base
- class User(Base):
- __tablename__ = "users"
- id = Column(Integer, primary_key=True, index=True)
- first_name = Column(String)
- last_name = Column(String)
- email_address = Column(String, unique=True, index=True)
- username = Column(String, unique=True, index=True)
- phone_number = Column(String)
- password = Column(String)
- date_of_birth = Column(String)
- class Session(Base):
- __tablename__ = "sessions"
- id = Column(Integer, primary_key=True, index=True)
- user_id = Column(Integer, ForeignKey("users.id"))
- token = Column(String, unique=True, index=True)
- expiration_date = Column(DateTime, default=datetime.utcnow)
- class Login(Base):
- __tablename__ = "logins"
- id = Column(Integer, primary_key=True, index=True)
- user_id = Column(Integer, ForeignKey("users.id"))
- username = Column(String, unique=True, index=True)
- password = Column(String)
- created_at = Column(DateTime, default=datetime.utcnow)
- class UserBase(BaseModel):
- first_name: str = Field(alias="firstName")
- last_name: str = Field(alias="lastName")
- email_address: str = Field(alias="emailAddress")
- phone_number: str = Field(alias="phoneNumber")
- password: str = Field(alias="password")
- date_of_birth: str = Field(alias="dateOfBirth")
- class Config:
- allow_population_by_field_name = True
- class UserModel(UserBase):
- id: int
- class LoginModel(BaseModel):
- email_address: str = Field(alias="emailAddress")
- password: str = Field(alias="password")
- class Config:
- allow_population_by_field_name = True
- class LoginResponseModel(BaseModel):
- user_name: str = Field(alias="userName")
- logged_in: bool = Field(alias="loggedIn")
- class Config:
- allow_population_by_field_name = True
Advertisement
Add Comment
Please, Sign In to add comment