| 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 | |