from flask import session, jsonify from app.models.loan import Loan from app.utils.logger import logger from app.api.services.base_service import BaseService # from app.api.schemas.eligibility_check import EligibilityCheckSchema from marshmallow import ValidationError from app.api.enums import TransactionType from app.api.integrations import SimbrellaIntegration from app.extensions import db from app.models import MembersProducts, Products, Members from app.api.services.offer_analysis import OfferAnalysis from app.api.helpers.response_helper import ResponseHelper from werkzeug.security import generate_password_hash, check_password_hash # from app.api.schemas.register import RegisterSchema from app.api.schemas.products import ProductsSchema from app.api.schemas.user import UserSchema import datetime import jwt import random from app.config import Config class MyProductsService(BaseService): @staticmethod def process_request(data): try: with db.session.begin(): validated_data = MyProductsService.validate_data(data, UserSchema()) token = validated_data.get('token') uid = validated_data.get('uid') # product_id = request.args.get('product_id') # print(product_id) # if not product_id: # return { # "message": "Please provide product_id", # "data": None, # "error": "Bad request" # }, 400 # # print(product_id) # member_id = current_user['user']['member_id'] # myproduct_data = myproduct_detail(member_id, product_id) member_id = 1 # current_user["user"]["id"] products = Products.get_user_product_list(member_id) product_data=[] logger.info(f"Product Data ****** *****: {products}") for t in products: product_data.append({ 'id': t.id, 'uid': t.uid, 'product_id': t.product_id, 'description': t.description, 'name': t.name, 'status': t.status, 'added': t.added.isoformat() if t.added else None, 'updated': t.updated.isoformat() if t.updated else None, 'banner': t.banner, 'prov_status': '', 'status_text': 'Activate Now' }) # Simulate processing response_data = { "products_data": product_data, "member_id": 0, "uid": 0, } return ResponseHelper.success(data=response_data) except ValidationError as err: logger.error(f"Validation Error: {getattr(err, 'messages', str(err))}") db.session.rollback() return ResponseHelper.unprocessable_entity(result_description="Validation exception") except ValueError as err: logger.error(f"{getattr(err, 'messages', str(err))}") db.session.rollback() return ResponseHelper.error(result_description=str(err)) except Exception as e: logger.error(f"An error occurred: {str(e)}", exc_info=True) db.session.rollback() return ResponseHelper.internal_server_error()