| from pydantic import BaseModel | |
| from typing import Optional | |
| from datetime import datetime | |
| class PersonBase(BaseModel): | |
| username: str | |
| class PersonCreate(PersonBase): | |
| password: str | |
| table_number: int | |
| phone_number: Optional[str] = None | |
| class PersonLogin(PersonBase): | |
| password: str | |
| table_number: int | |
| class PhoneAuthRequest(BaseModel): | |
| phone_number: str | |
| table_number: int | |
| class PhoneVerifyRequest(BaseModel): | |
| phone_number: str | |
| verification_code: str | |
| table_number: int | |
| class UsernameRequest(BaseModel): | |
| phone_number: str | |
| username: str | |
| table_number: int | |
| class Person(PersonBase): | |
| id: int | |
| visit_count: int | |
| last_visit: datetime | |
| created_at: datetime | |
| phone_number: Optional[str] = None | |
| class Config: | |
| from_attributes = True # Updated from orm_mode for Pydantic V2 | |