rset [pass

This commit is contained in:
CHIEFSOFT\ameye
2025-07-12 00:19:58 -04:00
parent 69b5e3e3b2
commit 4e9d500337
7 changed files with 205 additions and 46 deletions
+3 -1
View File
@@ -18,8 +18,10 @@ from .members_actions import MembersActions
from .members_pending import MembersPending
from .products_details import ProductsDetails
from .provision_actions import ProvisionActions
from .password_reset import PasswordReset
__all__ = ['Members','Customer', 'Account', 'Products',
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails', 'ProvisionActions', 'Loan', 'Transaction', 'Repayment',
'MembersProducts', 'MembersActions', 'MembersPending', 'ProductsDetails', 'ProvisionActions', 'PasswordReset','Loan', 'Transaction', 'Repayment',
'LoanCharge', 'Offer', 'Charge', 'RACCheck', 'LoanRepaymentSchedule',
'TransactionOffer', 'RepaymentsData', 'Salary']
+47
View File
@@ -0,0 +1,47 @@
from datetime import datetime, timezone
from app.extensions import db
from app.models.charge import Charge
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from sqlalchemy.exc import IntegrityError
import uuid
from app.utils.logger import logger
class PasswordReset(db.Model):
__tablename__ = 'password_reset'
id = db.Column(db.String, primary_key=True)
uid = db.Column(db.String(150), nullable=True)
username = db.Column(db.String, 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())
def to_dict(self):
return {
"id": self.id,
"uid": self.uid,
"username": self.account_id,
"status": self.status,
"added": self.added.isoformat() if self.added else None,
"updated": self.updated.isoformat() if self.updated else None,
}
def __repr__(self):
return f'<pPassReset {self.id} - {self.amount}>'
@classmethod
def create_reset(cls, username):
pass_reset = cls(
uid=str(uuid.uuid4()),
username=username,
created_at=datetime.now(timezone.utc),
updated_at=datetime.now(timezone.utc)
)
try:
db.session.add(pass_reset)
except IntegrityError as err:
raise ValueError(f"Database integrity error: {err}")
return pass_reset