51 lines
898 B
Python
51 lines
898 B
Python
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, ConfigDict, EmailStr, Field
|
|
|
|
|
|
class UserBase(BaseModel):
|
|
name: str
|
|
email: EmailStr
|
|
|
|
|
|
class UserCreate(UserBase):
|
|
password: str
|
|
|
|
|
|
class UserLogin(BaseModel):
|
|
email: EmailStr
|
|
password: str
|
|
|
|
|
|
class UserRead(UserBase):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int
|
|
last_login_at: datetime | None = None
|
|
created_at: datetime
|
|
|
|
|
|
class TokenResponse(BaseModel):
|
|
token: str
|
|
user: UserRead
|
|
|
|
|
|
class AddressCreate(BaseModel):
|
|
model_config = ConfigDict(populate_by_name=True)
|
|
|
|
house_number: str = Field(alias='houseNumber')
|
|
colonia: str
|
|
street: str
|
|
email: EmailStr | None = None
|
|
|
|
|
|
class AddressRead(BaseModel):
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
id: int
|
|
house_number: str
|
|
colonia: str
|
|
street: str
|
|
user_id: int
|
|
created_at: datetime
|