From d545e689fd1dc7c5ebd8d57fb75af2dceff65346 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Mon, 21 Jul 2025 21:54:11 -0400 Subject: [PATCH] Fix model --- app/api/services/base_service.py | 3 +++ app/api/services/login.py | 2 +- app/api/services/office_dashboard.py | 7 +++---- app/models/members.py | 2 +- app/models/members_products.py | 7 +++++++ app/models/password_reset.py | 18 ++++++++++++++---- 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/app/api/services/base_service.py b/app/api/services/base_service.py index 35415ac..9b15e85 100644 --- a/app/api/services/base_service.py +++ b/app/api/services/base_service.py @@ -32,6 +32,9 @@ class BaseService: "last_name": lastname, "pending_id": pending_id, } + + logger.info(f"Send Email DATA ***** {pending_member}") + jwt_part = jwt.encode( {"user": pending_member, 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=3330)}, BaseService.JWT_SECRET_KEY, algorithm='HS256' diff --git a/app/api/services/login.py b/app/api/services/login.py index 8a8152a..2dd2423 100644 --- a/app/api/services/login.py +++ b/app/api/services/login.py @@ -37,7 +37,7 @@ class LoginService(BaseService): reset_data = PasswordReset.create_reset(username=username) - BaseService.send_resetpass_mail(member.email, member.uid, member.id, "FF","LL") #pending_uid, pending_id, firstname, lastname + BaseService.send_resetpass_mail(member.email, str(member.uid), member.id, "FF","LL") #pending_uid, pending_id, firstname, lastname response_data = { diff --git a/app/api/services/office_dashboard.py b/app/api/services/office_dashboard.py index 433f432..b0eeac3 100644 --- a/app/api/services/office_dashboard.py +++ b/app/api/services/office_dashboard.py @@ -1,12 +1,10 @@ from flask import jsonify from app.utils.logger import logger from app.api.services.base_service import BaseService -from app.models.transaction import Transaction -from app.models.loan import Loan from sqlalchemy import func, desc from datetime import datetime, timedelta, timezone from app.extensions import db -from app.api.enums.transaction_type import TransactionType +from app.models import MembersProducts, Products, Members, ProductsDetails, ProductsDetails, ProvisionActions class OfficeDashboardService(BaseService): @@ -101,8 +99,9 @@ class OfficeDashboardService(BaseService): # }, # "recent_transactions": recent_transactions_data # } - + subscription = MembersProducts.get_dash_recent_subscription(15) dashboard_data = { + "loans": { "currency": "Naira", "currency_text": "\u20a6", diff --git a/app/models/members.py b/app/models/members.py index 9499cc0..b544e5f 100644 --- a/app/models/members.py +++ b/app/models/members.py @@ -25,7 +25,7 @@ class Members(db.Model): def to_dict(self): return { "id": self.id, - "uid": self.uid, + "uid": str(self.uid), "username": self.account_id, "account_id": self.username, "password": self.password, diff --git a/app/models/members_products.py b/app/models/members_products.py index 778482e..96c3193 100644 --- a/app/models/members_products.py +++ b/app/models/members_products.py @@ -49,6 +49,13 @@ class MembersProducts(db.Model): return None return member_products + @classmethod + def get_dash_recent_subscription(cls, limit): + member_product = cls.query.limit(limit).all() + if not member_product: + return None + return member_product + @classmethod def get_member_product_by_product_member_id(cls, member_id, product_id): member_product = cls.query.filter_by(member_id=str(member_id), product_id=str(product_id)).first() diff --git a/app/models/password_reset.py b/app/models/password_reset.py index 715c73b..0ffcef0 100644 --- a/app/models/password_reset.py +++ b/app/models/password_reset.py @@ -10,7 +10,7 @@ from app.utils.logger import logger class PasswordReset(db.Model): __tablename__ = 'password_reset' - id = db.Column(db.String, primary_key=True) + id = db.Column(db.Integer, primary_key=True, autoincrement=True) uid = db.Column(db.String(150), nullable=False) username = db.Column(db.String(35), nullable=False) status = db.Column(db.Integer, nullable=True, default=0) @@ -30,11 +30,21 @@ class PasswordReset(db.Model): @classmethod def create_reset(cls, username): logger.info(f"Enter to reset the password********** "+username) - + uid_val = str(uuid.uuid4()) + logger.info(f"Enter to reset the password UID ***** "+uid_val) + data1 ={ + 'uid' :uid_val, + 'username' : username, + 'status' : 0, + 'added' : datetime.now(timezone.utc), + 'updated' : datetime.now(timezone.utc) + } + logger.info(f"Enter to reset the password DATA ***** {data1}") pass_reset = cls( - uid=str(uuid.uuid4()), + uid=uid_val, username=username, + status=0, added=datetime.now(timezone.utc), updated=datetime.now(timezone.utc) ) @@ -42,7 +52,7 @@ class PasswordReset(db.Model): logger.info(f"About to reset the password**********") try: db.session.add(pass_reset) - # db.session.flush() + db.session.flush() logger.info(f"After Insert to reset the password**********") except IntegrityError as err: raise ValueError(f"****** ERROR Database integrity error: {err}")