Missed models

This commit is contained in:
CHIEFSOFT\ameye
2025-07-25 12:21:45 -04:00
parent a452e3589f
commit 95fe007cbc
+73
View File
@@ -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'<MembersProductsRefresh {self.id}>'