from __future__ import annotations from fastapi import Depends from sqlalchemy.ext.asyncio import AsyncSession from core.db import get_db from v1.payments.apple_verifier import AppleJwsVerifier from v1.payments.creem_client import CreemClient from v1.payments.creem_service import CreemService from v1.payments.repository import PaymentRepository from v1.payments.service import PaymentService from v1.points.repository import PointsRepository def get_payment_service(session: AsyncSession = Depends(get_db)) -> PaymentService: payment_repo = PaymentRepository(session) points_repo = PointsRepository(session) verifier = AppleJwsVerifier() return PaymentService( payment_repo=payment_repo, points_repo=points_repo, verifier=verifier, ) def get_creem_service(session: AsyncSession = Depends(get_db)) -> CreemService: payment_repo = PaymentRepository(session) points_repo = PointsRepository(session) client = CreemClient() return CreemService( payment_repo=payment_repo, points_repo=points_repo, client=client, )