Files
CHIEFSOFT\ameye de2691f871 fix actions
2025-11-27 03:30:00 -05:00

86 lines
3.4 KiB
Python

from datetime import datetime, timezone, timedelta
from itertools import product
from app.extensions import db
from app.models.customer import Customer
from app.models.account import Account
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 MembersActions(db.Model):
__tablename__ = 'members_actions'
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)
member_uid = db.Column(db.String(150), nullable=False)
action_label = db.Column(db.String(35), nullable=False)
action_name = db.Column(db.String(100), nullable=False)
status_description = db.Column(db.String(25), 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 get_recent_member_actions(cls, member_id):
# member_actions = cls.query.limit(4).all()
member_actions = cls.query.filter_by(member_id=member_id).order_by(cls.id.desc()).limit(4).all()
if not member_actions:
return None
return member_actions
@classmethod
def get_recent_member_calendar_actions_member_id(cls, member_id, limit):
# member_actions = cls.query.limit(4).all()
member_actions = cls.query.filter_by(member_id=member_id).order_by(cls.id.desc()).limit(limit).all()
if not member_actions:
return None
return member_actions
# '''
# merms_panel=# select * from members_actions limit 2;
# id | uid | member_id | member_uid | action_label | action_name | status_description | status | adde
# d | updated
# ----+--------------------------------------+-----------+--------------------------------------+------------------------+----------------------+--------------------+--------+---------------
# -------------+----------------------------
# 1 | 91f112f3-c8ad-4533-bfa7-117f8e8781b4 | 2 | f995061e-a36c-4648-a3fc-d18e3d93e353 | Systems Status Checks | system_status_checks | processing | 0 | 2025-07-20 18:
# 52:08.011359 | 2025-07-20 18:52:08.011359
# 2 | 7fa90e2d-d4d2-40fd-bbad-c18be69f8967 | 1 | 2493007e-ab59-428a-8d34-ce66c8dea5ac | Systems Status Checks | system_status_checks | processing | 0 | 2025-07-20 18:
# 52:08.093698 | 2025-07-20 18:52:08.093698
# (2 rows)
# '''
def to_dict(self):
"""
Convert the Loan object to a dictionary format for JSON serialization.
"""
return {
'id': self.id,
'uid': self.uid,
'member_id': self.member_id,
'member_uid': self.member_uid,
'action_label' : self.action_label,
'action_name': self.action_name,
'status_description': self.status_description,
'status': self.status,
'added': self.added,
'updated': self.updated
}
def __repr__(self):
return f'<Products {self.id}>'