30 lines
708 B
Python
30 lines
708 B
Python
from sqlalchemy import Boolean, Column, String
|
|
from sqlalchemy.orm import Mapped
|
|
|
|
from api.schemas.user_schema import UserSchema
|
|
|
|
from .base import Base
|
|
|
|
|
|
class User(Base):
|
|
__tablename__ = "users"
|
|
|
|
name: Mapped[str]
|
|
email = Column(String, unique=True)
|
|
hashed_password = Column(String)
|
|
is_active = Column(Boolean, default=True)
|
|
|
|
def __repr__(self):
|
|
return (
|
|
f"<User(id={self.id}, "
|
|
f'email="{self.email}", '
|
|
f'hashed_password="{self.hashed_password}", '
|
|
f"is_active={self.is_active})>"
|
|
)
|
|
|
|
def to_read_model(self) -> UserSchema:
|
|
return UserSchema(
|
|
id=self.id,
|
|
name=self.name,
|
|
)
|