MibooGram/core/services/self_help/models.py
2024-07-06 13:35:04 +08:00

32 lines
989 B
Python

from datetime import timedelta
from influxdb_client import Point
from influxdb_client.client.flux_table import FluxRecord
from simnet.models.zzz.self_help import ZZZSelfHelpActionLog
from modules.action_log.date import TZ
FIX = timedelta(minutes=6)
class ActionLogModel:
@staticmethod
def en(data: "ZZZSelfHelpActionLog") -> Point:
return (
Point.measurement("action_log")
.tag("uid", data.uid)
.field("id", data.id)
.field("status", data.status)
.field("reason", data.reason.value)
.field("client_ip", data.client_ip)
.time(data.time.replace(tzinfo=TZ) + FIX)
)
@staticmethod
def de(data: "FluxRecord") -> "ZZZSelfHelpActionLog":
utc_time = data.get_time()
time = utc_time.astimezone(TZ)
return ZZZSelfHelpActionLog(
id=data["id"], uid=data["uid"], datetime=time, action_name=data["reason"], client_ip=data["client_ip"]
)