27 lines
1.1 KiB
Python
Executable File
27 lines
1.1 KiB
Python
Executable File
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() |