from pydantic import BaseModel, Field
from typing import Optional, List

class ContactCreate(BaseModel):
    full_name: str
    email: str
    phone: Optional[str] = None
    contact_type: str = "primary"

class CorpOnboardIn(BaseModel):
    # Névkezelés
    full_name: str = Field(..., description="Teljes hivatalos név")
    name: str = Field(..., description="Rövidített cégnév (pl. ProfiBot Kft.)")
    display_name: str = Field(..., description="Alkalmazáson belüli rövidítés (pl. ProfiBot)")
    
    tax_number: str
    country_code: str = "HU"
    language: str = Field("hu", description="A szervezet alapértelmezett nyelve")
    default_currency: str = Field("HUF", description="A szervezet alapértelmezett pénzneme")
    reg_number: Optional[str] = None
    
    # Atomizált Címkezelés
    address_zip: str
    address_city: str
    address_street_name: Optional[str] = None
    address_street_type: Optional[str] = None # utca, út, tér, dűlő
    address_house_number: Optional[str] = None
    address_hrsz: Optional[str] = None # Helyrajzi szám (ha nincs utca/házszám)
    address_stairwell: Optional[str] = None
    address_floor: Optional[str] = None
    address_door: Optional[str] = None
    
    contacts: List[ContactCreate] = []

class CorpOnboardResponse(BaseModel):
    organization_id: int
    status: str