feat: implement pivot-currency model, rbac smart tokens & fix circular imports

This commit is contained in:
2026-02-10 10:20:45 +00:00
parent 24d35fe0c1
commit e255fea3a5
117 changed files with 2247 additions and 3542 deletions

View File

@@ -1,5 +1,5 @@
from pydantic import BaseModel, EmailStr, Field
from typing import Optional, Dict
from typing import Optional, Dict, Any
from datetime import date
# --- STEP 1: LITE REGISTRATION ---
@@ -9,6 +9,8 @@ class UserLiteRegister(BaseModel):
first_name: str
last_name: str
region_code: str = "HU"
lang: str = Field("hu", description="Választott nyelv kódja")
timezone: str = Field("Europe/Budapest", description="Felhasználó időzónája")
class UserLogin(BaseModel):
email: EmailStr
@@ -30,15 +32,15 @@ class UserKYCComplete(BaseModel):
birth_date: date
mothers_last_name: str
mothers_first_name: str
# Hibrid Címmezők
address_zip: str
address_city: str
address_street_name: str
address_street_type: str
address_house_number: str
address_hrsz: Optional[str] = None # Helyrajzi szám
address_hrsz: Optional[str] = None
identity_docs: Dict[str, DocumentDetail]
ice_contact: ICEContact
preferred_currency: Optional[str] = Field("HUF", max_length=3)
# --- COMMON & SECURITY ---
class PasswordResetRequest(BaseModel):
@@ -53,4 +55,13 @@ class PasswordResetConfirm(BaseModel):
class Token(BaseModel):
access_token: str
token_type: str
is_active: bool
is_active: bool
class TokenPayload(BaseModel):
"""JWT Token payload struktúrája validációhoz."""
sub: Optional[str] = None
role: Optional[str] = None
rank: Optional[int] = 0
scope_level: Optional[str] = None
scope_id: Optional[str] = None
region: Optional[str] = None