user.py 855 B

123456789101112131415161718192021222324252627282930313233343536
  1. from typing import Optional
  2. from pydantic import BaseModel, Field
  3. class UserIDRequest(BaseModel):
  4. id: int
  5. class RegisterUserRequest(BaseModel):
  6. name: str
  7. email: str
  8. rut: str
  9. class UserRewardRequest(BaseModel):
  10. tableNumber: int
  11. class PinUserRequest(BaseModel):
  12. pin: str = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")
  13. class User(BaseModel):
  14. """User model matching the database schema"""
  15. id: int
  16. email: str
  17. name: str
  18. rut: str
  19. pin_hash: str
  20. kleincoins: str
  21. created_at: str
  22. permissions: Optional[int] = 0 # Default to normal user
  23. reward_progress:int
  24. class LoginRequest(BaseModel):
  25. email: str
  26. pin: str = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")
  27. class PinRecoveryRequest(BaseModel):
  28. email: str