from pydantic import BaseModel, ConfigDict
from typing import Optional
from datetime import datetime
from app.models.social import ModerationStatus, SourceType

# Közös alapmezők
class ServiceProviderBase(BaseModel):
    name: str
    address: Optional[str] = None
    source: SourceType = SourceType.MANUAL

# Amit a kliens küld (Létrehozás)
class ServiceProviderCreate(ServiceProviderBase):
    pass
    # A status-t NEM engedjük itt beállítani, azt a Service réteg kezeli!

# Amit a kliens visszakap (Válasz)
class ServiceProviderResponse(ServiceProviderBase):
    id: int
    status: ModerationStatus
    evidence_image_path: Optional[str] = None
    added_by_user_id: Optional[int] = None
    created_at: datetime

    # Ez biztosítja, hogy az SQLAlchemy ORM objektumot át tudja alakítani JSON-né
    model_config = ConfigDict(from_attributes=True)