addded payment records

This commit is contained in:
CHIEFSOFT\ameye
2025-08-30 10:24:39 -04:00
parent a604aeba8a
commit 477d97e045
3 changed files with 67 additions and 18 deletions
+7 -2
View File
@@ -69,8 +69,6 @@ def merms_resetcomplete():
response = LoginService.complete_reset(data)
return response
@api.route("/panel/Login", methods=["POST"])
@jwt_required()
def merms_login():
@@ -135,6 +133,13 @@ def merms_account_product_url():
response = ProductsService.product_url_request(data)
return response
@api.route("/panel/account/payments", methods=["POST"])
@jwt_required()
def merms_account_payments():
data = request.get_json()
response = AccountService.process_payments_data(data)
return response
@api.route("/panel/account/products/url", methods=["POST"])
def myproduct_url():
data = request.get_json()
+54 -1
View File
@@ -7,7 +7,7 @@ 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 Members, MembersActions, MembersProfile
from app.models import Members, MembersActions, MembersProfile, Payments
# 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
@@ -321,3 +321,56 @@ class AccountService(BaseService):
logger.error(f"An error occurred: {str(e)}", exc_info=True)
db.session.rollback()
return ResponseHelper.internal_server_error()
@staticmethod
def process_payments_data(data):
try:
with db.session.begin():
validated_data = AccountService.validate_data(data, UserSchema())
user_token = validated_data.get('token')
uid = str(validated_data.get('uid'))
member_data = Members.get_member_by_uid(uid)
member_payments = Payments.get_member_payments_by_member_id(member_data['id'])
member_payments_data = []
for t in member_payments:
member_payments_data.append({
'id': t.id,
'uid': t.uid,
'option_name': t.option_name,
'option_type': t.option_type,
'payment_uid': t.payment_uid,
'amount': t.amount,
'status': t.status,
'added': t.added
})
action_data = {
"member_payments": member_payments,
"last_update": datetime.datetime.utcnow(),
}
# logger.info(f"Member Actions : {action_data}")
return ResponseHelper.success(data=action_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()
+6 -15
View File
@@ -61,6 +61,12 @@ class Payments(db.Model):
return pay_data
@classmethod
def get_member_payments_by_member_id(cls, member_id):
member_payments = cls.query.filter_by(member_id=str(member_id))
if not member_payments:
return None
return member_payments
def to_dict(self):
return {
@@ -81,18 +87,3 @@ class Payments(db.Model):
def __repr__(self):
return f'<Payments {self.id}>'
'''
id SERIAL,
uid uuid DEFAULT uuid_generate_v4(),
member_id INT REFERENCES members(id),
option_name VARCHAR(100) REFERENCES subscription_options(option_name),
option_type VARCHAR(25),
payment_uid VARCHAR(100) UNIQUE NOT NULL,
amount INT DEFAULT 0,
status INT DEFAULT 1,
added timestamp without time zone DEFAULT now(),
sub_start timestamp without time zone,
next_billing timestamp without time zone,
sub_stop timestamp without time zone
'''