2021-08-20 12:44:03 +01:00
|
|
|
import json
|
|
|
|
|
|
|
|
from sqlite3 import Row
|
2021-08-20 14:46:08 +01:00
|
|
|
from pydantic import BaseModel
|
|
|
|
from typing import Optional
|
2021-08-20 12:44:03 +01:00
|
|
|
|
|
|
|
|
2021-08-20 14:46:08 +01:00
|
|
|
class Paywall(BaseModel):
|
2021-08-20 12:44:03 +01:00
|
|
|
id: str
|
|
|
|
wallet: str
|
|
|
|
url: str
|
|
|
|
memo: str
|
|
|
|
description: str
|
|
|
|
amount: int
|
|
|
|
time: int
|
|
|
|
remembers: bool
|
|
|
|
extras: Optional[dict]
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
def from_row(cls, row: Row) -> "Paywall":
|
|
|
|
data = dict(row)
|
|
|
|
data["remembers"] = bool(data["remembers"])
|
|
|
|
data["extras"] = json.loads(data["extras"]) if data["extras"] else None
|
|
|
|
return cls(**data)
|