user.py 744 B

123456789101112131415161718192021222324252627282930
  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 PinUserRequest(BaseModel):
  10. pin: str = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")
  11. class User(BaseModel):
  12. """User model matching the database schema"""
  13. id: int
  14. email: str
  15. name: str
  16. rut: str
  17. pin_hash: str
  18. kleincoins: str
  19. created_at: str
  20. permissions: Optional[int] = 0 # Default to normal user
  21. reward_progress:int
  22. class LoginRequest(BaseModel):
  23. email: str
  24. pin: str = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")