From 95fe007cbcfadfaa14f429eee0730c8550c8bac8 Mon Sep 17 00:00:00 2001 From: "CHIEFSOFT\\ameye" Date: Fri, 25 Jul 2025 12:21:45 -0400 Subject: [PATCH] Missed models --- app/models/member_product_refresh.py | 73 ++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 app/models/member_product_refresh.py diff --git a/app/models/member_product_refresh.py b/app/models/member_product_refresh.py new file mode 100644 index 0000000..c8474fb --- /dev/null +++ b/app/models/member_product_refresh.py @@ -0,0 +1,73 @@ +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 uuid + +logger = logging.getLogger(__name__) + +class MembersProductsRefresh(db.Model): + __tablename__ = 'member_product_refresh' + + id = db.Column( + db.Integer, + primary_key=True, + autoincrement=True, + ) + + uid = db.Column(db.String(150), nullable=False) + member_id = db.Column(db.Integer, nullable=False) + product_id = db.Column(db.String(25), nullable=False) + subscription_uid = db.Column(db.String(100), nullable=False) + status = db.Column(db.Integer, nullable=True, default=0) + added = db.Column(db.DateTime(timezone=True), server_default=func.now()) + updated = db.Column(db.DateTime(timezone=True), server_default=func.now(), onupdate=func.now()) + + + + + + @classmethod + def create_subscription_refresh(cls, member_id ,product_id,subscription_uid): + logger.info(f" Data for Subscription Data {member_id} ,{product_id} ,{subscription_uid} ") + subscription = cls( + uid=str(uuid.uuid4()), + member_id=member_id, + product_id=product_id, + subscription_uid=subscription_uid, + added=datetime.now(timezone.utc), + updated=datetime.now(timezone.utc) + ) + + try: + logger.info(f" About to Insert Subscription Data {subscription.member_id} ") + db.session.add(subscription) + db.session.flush() + except IntegrityError as err: + logger.error(f" Error inserting subscription data {err} -- ") + raise ValueError(f"Database integrity error: {err}") + return subscription + + + def to_dict(self): + """ + Convert the Loan object to a dictionary format for JSON serialization. + """ + return { + 'id': self.id, + 'uid': self.uid, + 'product_id': self.product_id, + 'subscription_uid': self.subscription_uid, + 'status': self.status, + 'added': self.added, + 'updated': self.updated + } + + def __repr__(self): + return f''