| from sqlmodel import SQLModel, Field |
| from typing import Optional |
| from sqlalchemy import Column, String |
|
|
|
|
| class UserBase(SQLModel): |
| email: str = Field(sa_column=Column(String, unique=True, index=True)) |
| name: Optional[str] = Field(default=None) |
|
|
|
|
| class User(UserBase, table=True): |
| id: Optional[int] = Field(default=None, primary_key=True) |
| hashed_password: str |
|
|
| class Config: |
| from_attributes = True |
|
|
| __table_args__ = {"extend_existing": True} |
|
|
|
|
| class UserCreate(UserBase): |
| email: str |
| password: str |
| name: str |
|
|
|
|
| class UserPublic(UserBase): |
| id: int |
| email: str |
| name: Optional[str] = None |
|
|
|
|
| class UserUpdate(SQLModel): |
| name: Optional[str] = None |
| email: Optional[str] = None |
|
|