File size: 730 Bytes
6bed18e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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