# -*- coding: utf-8 -*- # @Project : X25020501_card_book # @File : actions.py.py # @Date : 2025/5/7 20:38 # @Software : PyCharm # @Author : xingc # @Desc : import logging from sqlalchemy.ext.asyncio import AsyncSession from core.base.schema import ProductCategory from core.db.crud import CRUD from core.db.engine import async_db_session from core.db.models import User, Product from core.routers.auth.schema import LoginUser from core.routers.pay.actions import actions_handler logger = logging.getLogger(__name__) @async_db_session() async def reward_points_after_uploading_pictures( gift_product_id: int, login_user: LoginUser, db_session: AsyncSession ): db_crud = CRUD(db_session, Product) product: Product = await db_crud.get( model=Product, filters={ 'id': gift_product_id, 'category': ProductCategory.GIFT } ) if not product: logger.warning(f'Product not found -> {gift_product_id}') return user: User = await db_crud.get(model=User, filters={'user_id': login_user.user_id}) try: await actions_handler(db_crud, product, user) except Exception as e: logger.error(f'Reward Points After Uploading Pictures -> {e}')