STABLE: Final schema sync, optimized gitignore

This commit is contained in:
Kincses
2026-02-26 08:19:25 +01:00
parent 893f39fa15
commit 505543330a
203 changed files with 11590 additions and 9542 deletions

View File

@@ -1,45 +1,38 @@
from pydantic import BaseModel, Field
from typing import Optional, Dict, Any
from pydantic import BaseModel, Field, ConfigDict
from typing import Optional, List
class ServiceCreateInternal(BaseModel):
name: str = Field(..., description="A szolgáltató neve")
# --- HIERARCHIA ---
# Ha a robot felismeri, hogy egy lánc része, itt tároljuk a szülő ID-t
parent_id: Optional[int] = Field(None, description="Szülő egység ID-ja (pl. Franchise központ)")
# --- CÍM ADATOK ---
postal_code: Optional[str] = None
city: str
street_name: Optional[str] = None
street_type: Optional[str] = "utca"
house_number: Optional[str] = None
stairwell: Optional[str] = None
floor: Optional[str] = None
door: Optional[str] = None
hrsz: Optional[str] = None
full_address: Optional[str] = Field(None, description="Eredeti, nyers cím szövege")
# --- ELÉRHETŐSÉG ---
contact_phone: Optional[str] = None
email: Optional[str] = None
website: Optional[str] = None
# --- SOCIAL & AI ---
# A Deep Dive fázishoz előkészítve
social_links: Optional[Dict[str, str]] = Field(default_factory=dict)
vibe_analysis: Optional[Dict[str, Any]] = Field(default_factory=dict)
# --- IDENTITÁS ÉS FORRÁS ---
source: str # 'google', 'osm', 'manual', 'fb_scraper'
external_id: Optional[str] = None
# Ez a robot "horgonya" a duplikációk ellen
fingerprint: str = Field(..., description="Egyedi ujjlenyomat: Hash(Name+City+Street)")
trust_score: int = Field(30, ge=0, le=100)
raw_data: Optional[Dict[str, Any]] = {}
class ContactCreate(BaseModel):
full_name: str
email: str
phone: Optional[str] = None
contact_type: str = "primary"
class Config:
from_attributes = True
class CorpOnboardIn(BaseModel):
""" Teljes onboarding adatcsomag atomizált címekkel. """
full_name: str = Field(..., description="Hivatalos cégnév")
name: str = Field(..., description="Rövid név")
display_name: str
tax_number: str
reg_number: Optional[str] = None
country_code: str = "HU"
language: str = "hu"
default_currency: str = "HUF"
# --- ATOMIZÁLT CÍM (Modell szinkron) ---
address_zip: str
address_city: str
address_street_name: str
address_street_type: str
address_house_number: str
address_stairwell: Optional[str] = None
address_floor: Optional[str] = None
address_door: Optional[str] = None
address_hrsz: Optional[str] = None
contacts: List[ContactCreate] = []
class CorpOnboardResponse(BaseModel):
organization_id: int
status: str
model_config = ConfigDict(from_attributes=True)