from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
from app.models.social import ServiceProvider, ModerationStatus
from app.schemas.social import ServiceProviderCreate

class SocialService:
    @staticmethod
    async def create_service_provider(db: AsyncSession, schema: ServiceProviderCreate, user_id: int) -> ServiceProvider:
        # 1. Pydantic modell átalakítása SQLAlchemy modellé
        # A **schema.model_dump() kicsomagolja a mezőket (name, address, source)
        db_provider = ServiceProvider(
            **schema.model_dump(),
            added_by_user_id=user_id,
            status=ModerationStatus.PENDING  # KRITIKUS: Alapértelmezetten moderációra vár
        )
        
        # 2. Mentés az adatbázisba
        db.add(db_provider)
        await db.commit()
        await db.refresh(db_provider) # Visszakérjük az ID-t és a timestamp-et
        return db_provider

    @staticmethod
    async def get_all_providers(db: AsyncSession):
        # Teszteléshez: listázzuk ki az összeset
        result = await db.execute(select(ServiceProvider))
        return result.scalars().all()