Provison actions

This commit is contained in:
CHIEFSOFT\ameye
2025-07-08 09:14:53 -04:00
parent 4a85993293
commit 24b5fa8305
3 changed files with 66 additions and 26 deletions
+2 -25
View File
@@ -3,7 +3,7 @@ from app.utils.logger import logger
from app.api.services.base_service import BaseService
from marshmallow import ValidationError
from app.extensions import db
from app.models import MembersProducts, Products, Members, ProductsDetails
from app.models import MembersProducts, Products, Members, ProductsDetails, ProductsDetails, ProvisionActions
from app.api.helpers.response_helper import ResponseHelper
from werkzeug.security import generate_password_hash, check_password_hash
from app.api.schemas.myproduct import MyProductSchema
@@ -40,30 +40,7 @@ class MyProductsService(BaseService):
logger.info(f"GET HERE ******************************** : {data}", exc_info=True)
subscription = MembersProducts.get_member_product_by_product_member_id(member_id, product_id)
# if not subscription:
# logger.error(f"Ready to add data to tables")
# response_data = {
# "subscription": mumberSub,
# "member_id": member_id,
# "error": "already_subscribed",
# "uid": uid
# }
# return ResponseHelper.success(data=response_data)
# internal_url = str(random.randint(10000, 99999)) + ".devprov.mermsemr.com"
#INSERT_NEW_PRODUCT = "INSERT INTO members_products (member_id ,product_id,status,internal_url) VALUES (%s, %s, %s, %s)"
# val_insert = (member_id, product_id,6,internal_url)
# status = 6
# subscription = MembersProducts.create_subscription(member_id ,product_id,status,internal_url)
# response_data = {
# "subscription_uid": subscription.uid,
# "subscription_id": subscription.id,
# "internal_url": subscription.internal_url,
# "member_id": member_id,
# "uid": uid
# }
provision_activities=[]
provision_activities = ProvisionActions.get_provision_action_by_member_id(member_id, 4)
response_data = {
"subscription_uid": subscription.uid,
"subscription_id": subscription.id,
+2 -1
View File
@@ -17,8 +17,9 @@ from .members_products import MembersProducts
from .members_actions import MembersActions
from .members_pending import MembersPending
from .products_details import ProductsDetails
from .provision_actions import ProvisionActions
__all__ = ['Members','Customer', 'Account', 'Products',
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails', 'Loan', 'Transaction', 'Repayment',
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails', 'ProvisionActions', 'Loan', 'Transaction', 'Repayment',
'LoanCharge', 'Offer', 'Charge', 'RACCheck', 'LoanRepaymentSchedule',
'TransactionOffer', 'RepaymentsData', 'Salary']
+62
View File
@@ -0,0 +1,62 @@
from datetime import datetime, timezone, timedelta
from itertools import product
from app.extensions import db
from sqlalchemy.exc import IntegrityError
from sqlalchemy.orm import relationship
from dateutil.relativedelta import relativedelta
from datetime import timedelta
import logging
from sqlalchemy import and_, or_, not_
from sqlalchemy.sql import func
import json
logger = logging.getLogger(__name__)
class ProvisionActions(db.Model):
__tablename__ = 'provision_actions'
id = db.Column(
db.Integer,
primary_key=True,
autoincrement=True,
)
uid = db.Column(db.String(150), nullable=True)
member_id = db.Column(db.Integer, nullable=False)
product_uid = db.Column(db.String(100), nullable=False)
action = db.Column(db.String(100), nullable=False)
added = db.Column(db.DateTime(timezone=True), server_default=func.now())
@classmethod
def get_provision_action_by_member_id(cls, member_id, limit):
provision_action = cls.query.all()
provision_action = cls.query.filter_by(member_id=member_id).limit(limit).all()
if not provision_action:
return None
return provision_action
@classmethod
def get_provision_action_by_product_uid(cls, product_uid,limit):
provision_action = cls.query.all()
provision_action = cls.query.filter_by(product_uid=product_uid).limit(limit).all()
if not provision_action:
return None
return provision_action
def to_dict(self):
"""
Convert the Loan object to a dictionary format for JSON serialization.
"""
return {
'id': self.id,
'uid': self.uid,
'product_uid': self.product_uid,
'action': self.action,
'added': self.added,
}
def __repr__(self):
return f'<ProvisionActions {self.id}>'