last login

This commit is contained in:
CHIEFSOFT\ameye
2025-10-17 21:14:30 -04:00
parent 706ee60d3e
commit 88e96bf70a
3 changed files with 19 additions and 2 deletions
+3
View File
@@ -230,6 +230,9 @@ class LoginService(BaseService):
"message_key": "invalid_username_or_password",
}
return ResponseHelper.success(data=invalid_data)
#
# last_login
Members.set_member_last_login(member.uid)
user_data = {}
user_data["id"] = member.id,
+15 -1
View File
@@ -26,6 +26,8 @@ class Members(db.Model):
option_name = db.Column(db.String(100), nullable=True)
next_billing= db.Column(db.DateTime(timezone=False))
trial_end = db.Column(db.DateTime(timezone=False))
last_login = db.Column(db.DateTime(timezone=False), server_default=func.now(), onupdate=func.now())
# "account_id": self.account_id,
def to_dict(self):
return {
@@ -40,6 +42,7 @@ class Members(db.Model):
"status": self.status,
"added": self.added.isoformat() if self.added else None,
"updated": self.updated.isoformat() if self.updated else None,
"last_login" : self.last_login.isoformat() if self.last_login else None,
"email": self.email,
"account_name": self.account_name,
"firstname": self.firstname,
@@ -86,6 +89,17 @@ class Members(db.Model):
member.profile_completed = datetime.now(timezone.utc)
return member.profile_completed
@classmethod
def set_member_last_login(cls, uid):
member = cls.query.filter_by(uid=str(uid)).first()
if not member:
logger.info(f"User UID = {uid} found")
return None
member.last_login = datetime.now(timezone.utc)
return member.last_login
@classmethod
def add_member(cls, firstname, lastname, email, username,password, country, trials_days = 90):
@@ -189,7 +203,7 @@ class Members(db.Model):
logger.info(f"Get Recent Member Login")
# Order by created_at descending (newest first)
query = query.order_by(cls.added.desc())
query = query.order_by(cls.last_login.desc())
query = query.limit(limit).offset(0)
return query.all()
+1 -1
View File
@@ -91,7 +91,7 @@ class Products(db.Model):
"""
Return all offers in dictionary format.
"""
product_list = cls.query.all()
product_list = cls.query.order_by(cls.list_order.asc()).all()
if not product_list:
raise ValueError(f"No available Products")