feat: implement hybrid address system and premium search logic

- Added centralized, self-learning GeoService (ZIP, City, Street)
- Implemented Hybrid Address Management (Centralized table + Denormalized fields)
- Fixed Gamification logic (PointsLedger field names & filtering)
- Added address autocomplete and two-tier (Free/Premium) search API
- Synchronized UserStats and PointsLedger schemas
This commit is contained in:
2026-02-08 16:26:39 +00:00
parent 4e14d57bf6
commit 451900ae1a
41 changed files with 764 additions and 515 deletions

View File

@@ -29,7 +29,6 @@ class UserKYCComplete(BaseModel):
birth_place: str
birth_date: date
mothers_name: str
# Rugalmas okmánytár, pl: {"id_card": {"number": "123", "expiry_date": "2030-01-01"}}
identity_docs: Dict[str, DocumentDetail]
ice_contact: ICEContact
@@ -37,7 +36,14 @@ class UserKYCComplete(BaseModel):
class PasswordResetRequest(BaseModel):
email: EmailStr
# EZ HIÁNYZOTT KORÁBBAN:
class PasswordResetConfirm(BaseModel):
email: EmailStr
token: str
password: str = Field(..., min_length=8)
password_confirm: str = Field(..., min_length=8)
class Token(BaseModel):
access_token: str
token_type: str
is_active: bool # KYC státusz visszajelzés
is_active: bool

View File

@@ -0,0 +1,12 @@
from pydantic import BaseModel, Field
from typing import Optional, Dict
class ServiceHuntRequest(BaseModel):
name: str = Field(..., example="Kovács Autóvillamosság")
category_id: int
address: str
latitude: float # A szerviz koordinátája
longitude: float
user_latitude: float # A felhasználó aktuális helyzete (GPS-ből)
user_longitude: float
name_translations: Optional[Dict[str, str]] = None