mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2025-02-24 22:58:46 +01:00
38 lines
899 B
Python
38 lines
899 B
Python
import json
|
|
from sqlite3 import Row
|
|
from typing import Optional
|
|
|
|
from fastapi import Query
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class CreatePaywall(BaseModel):
|
|
url: str = Query(...)
|
|
memo: str = Query(...)
|
|
description: str = Query(None)
|
|
amount: int = Query(..., ge=0)
|
|
remembers: bool = Query(...)
|
|
|
|
class CreatePaywallInvoice(BaseModel):
|
|
amount: int = Query(..., ge=1)
|
|
|
|
class CheckPaywallInvoice(BaseModel):
|
|
payment_hash: str = Query(...)
|
|
|
|
class Paywall(BaseModel):
|
|
id: str
|
|
wallet: str
|
|
url: str
|
|
memo: str
|
|
description: Optional[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)
|