feat: deals viewer mode and links for viewers

This commit is contained in:
2025-07-04 15:12:21 +04:00
parent bd7d9a19d3
commit 0caf1f3f42
19 changed files with 246 additions and 83 deletions

View File

@@ -17,9 +17,11 @@ from external.billing import BillingClient, CreateBillingRequestValue, CreateBil
ProductBillingDocumentPdf, ServiceBillingDocumentPdf
from models import CardBillRequest, Card, CardProduct, CardService as CardServiceModel, CardGroup, \
GroupBillRequest
from schemas.auth import UserUnion
from schemas.billing import *
from services.base import BaseService
from services.card import CardsService
from utils.auth import verify_user_deal_editor
from utils.list_utils import to_locale_number
@@ -157,6 +159,8 @@ class BillingService(BaseService):
async def create_card_billing(self, user, request: CreateCardBillRequest) -> CreateCardBillResponse:
try:
verify_user_deal_editor(user)
card_service = CardsService(self.session)
billing_client = BillingClient(backend.config.BILLING_API_KEY)
@@ -261,8 +265,10 @@ class BillingService(BaseService):
await self.session.delete(bill)
async def cancel_card_billing(self, request: CancelCardBillRequest) -> CancelCardBillResponse:
async def cancel_card_billing(self, user: UserUnion, request: CancelCardBillRequest) -> CancelCardBillResponse:
try:
verify_user_deal_editor(user)
card = await self._get_card_by_id(request.card_id)
if not card:
return CancelCardBillResponse(ok=False, message='Сделка не найдена')