| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import email
- from typing import Optional
- from pydantic import BaseModel, Field
- class UserIDRequest(BaseModel):
- id: int
- class RegisterUserRequest(BaseModel):
- name: str
- email: str
- rut: str
- class ForceRegisterUserRequest(BaseModel):
- name: str
- email: str
- rut: str
- pin: str = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")
- class UserRewardRequest(BaseModel):
- tableNumber: int
- class PinUserRequest(BaseModel):
- pin: str = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")
- class User(BaseModel):
- """User model matching the database schema"""
- id: int
- email: str
- name: str
- rut: str
- pin_hash: str
- kleincoins: str
- created_at: str
- permissions: Optional[int] = 0 # Default to normal user
- reward_progress:int
- class UserMail(BaseModel):
- email: str
- class LoginRequest(BaseModel):
- email: str
- pin: str = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")
- class PinRecoveryRequest(BaseModel):
- email: str
- token: Optional[str] = None
- new_pin: Optional[str] = Field(min_length=4, max_length=4, description="4-digit PIN for user authentication")
- class PinRecoveryValidateRequest(BaseModel):
- email: str
- code: int
|