from fastapi import APIRouter from backend.dependecies import SessionDependency, CurrentUserDependency from external.billing import BillStatusUpdateRequest from schemas.billing import * from services.billing import BillingService billing_router = APIRouter( prefix='/billing', tags=['billing'] ) @billing_router.post( '/webhook' ) async def webhook( request: BillStatusUpdateRequest, session: SessionDependency ): try: await BillingService(session).process_update(request) return {'ok': True} except Exception as e: print(e) return {'ok': False} @billing_router.post( '/create-deal-bill', operation_id='create_deal_bill', response_model=CreateCardBillResponse ) async def create_deal_bill( session: SessionDependency, request: CreateCardBillRequest, user: CurrentUserDependency ): return await BillingService(session).create_card_billing(user, request) @billing_router.post( '/cancel-deal-bill', operation_id='cancel_deal_bill', response_model=CancelCardBillResponse ) async def cancel_deal_billing( session: SessionDependency, request: CancelCardBillRequest, ): return await BillingService(session).cancel_card_billing(request) @billing_router.get( '/deal-bill-request/{deal_id}', response_model=GetCardBillById, operation_id='get_deal_bill_by_id' ) async def get_deal_bill_by_id( deal_id: int, session: SessionDependency ): return await BillingService(session).get_card_bill_by_id(deal_id)