| 121 | |
| 122 | |
| 123 | class User(UserBase, table=True): |
| 124 | __table_args__ = ( |
| 125 | Index("ix_user_email", "email"), |
| 126 | {"extend_existing": True}, |
| 127 | ) |
| 128 | id: Optional[int] = Field(default=None, primary_key=True) |
| 129 | password: str = "" |
| 130 | user_uuid: str = Field(default="", index=True) |
| 131 | email_verified: bool = False |
| 132 | email_verified_at: Optional[str] = None |
| 133 | failed_login_attempts: int = 0 |
| 134 | locked_until: Optional[str] = None |
| 135 | last_login_at: Optional[str] = None |
| 136 | last_login_ip: Optional[str] = None |
| 137 | signup_method: Optional[str] = None |
| 138 | is_superadmin: bool = Field(default=False) |
| 139 | password_changed_at: Optional[datetime] = Field(default=None) |
| 140 | creation_date: str = "" |
| 141 | update_date: str = "" |
| 142 | |
| 143 | |
| 144 | # Rebuild models to resolve forward references after all classes are defined |