(20250102) Alerts on payment events.
This commit is contained in:
@@ -40,6 +40,7 @@ from pydantic import BaseModel, Field, field_validator, PastDatetime, AwareDatet
|
||||
from typing import Optional, Literal, Union, List, Any
|
||||
|
||||
# My utils:
|
||||
from utils_v2.string import json
|
||||
from utils_v2.string import regex
|
||||
from utils_v2.date_time import date_time
|
||||
|
||||
@@ -252,6 +253,19 @@ class PaymentEvent(BaseModel):
|
||||
def parse_date_time(cls, value):
|
||||
return date_time.parse_date_time(input_value = value, timezone = date_time.TIMEZONE_UTC)
|
||||
|
||||
# ┏┓ ┏┓
|
||||
# ┃ ┓┏┏╋┏┓┏┳┓ ┣ ┓┏┏┓┏┏
|
||||
# ┗┛┗┻┛┗┗┛┛┗┗ ┻ ┗┻┛┗┗┛
|
||||
|
||||
def to_markdown(self):
|
||||
message = f"Time: `{self.eventTs}`\n"
|
||||
message += f"Brief: `{self.message}`\n"
|
||||
message += f"initialized by PG: `{self.initByPG}`\n"
|
||||
message += "```\n"
|
||||
message += json.to_string(self.payload, default = str)
|
||||
message += "\n```"
|
||||
return message
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -373,6 +387,7 @@ class CorePaymentModel(BaseModel):
|
||||
"customer": self.customer.model_dump(),
|
||||
"ts": self.ts.isoformat(),
|
||||
"lastEventTs": self.lastEventTs,
|
||||
"lastEventMessage": self.lastEventMessage,
|
||||
"lastPaymentStatus": self.lastPaymentStatus,
|
||||
"amount": self.amount,
|
||||
"currencyCode": self.currencyCode,
|
||||
@@ -435,6 +450,32 @@ class CorePaymentModel(BaseModel):
|
||||
if value is None: value = []
|
||||
return value
|
||||
|
||||
# ┏┓ ┏┓
|
||||
# ┃ ┓┏┏╋┏┓┏┳┓ ┣ ┓┏┏┓┏┏
|
||||
# ┗┛┗┻┛┗┗┛┛┗┗ ┻ ┗┻┛┗┗┛
|
||||
|
||||
def to_markdown(self, include_events: bool = False):
|
||||
|
||||
# Build the base message:
|
||||
message = f"*PAYMENT RECORD*:\n\n"
|
||||
message += f"Requested `{self.currencyCode} {self.amount}` from the user identified by/as:\n"
|
||||
message += "```\n"
|
||||
message += json.to_string(self.customer.model_dump(), default = str)
|
||||
message += "\n```\n\n"
|
||||
message += f"Last Status: `{self.lastPaymentStatus}`\n"
|
||||
message += f"Last Message: `{self.lastEventMessage}`\n\n"
|
||||
|
||||
# Build the events (if asked):
|
||||
if include_events:
|
||||
message += "Here are all the events for your reference:\n\n"
|
||||
for index, event in enumerate(self.events):
|
||||
message += f"*EVENT {index:0>2}*.\n"
|
||||
message += event.to_markdown()
|
||||
message += "\n"
|
||||
|
||||
# Done here:
|
||||
return message
|
||||
|
||||
|
||||
# *****************************************************************************************************************
|
||||
# ***** ****
|
||||
|
||||
Reference in New Issue
Block a user