diff --git a/lnbits/extensions/amilk/models.py b/lnbits/extensions/amilk/models.py index a2acfa88..7ee6bf90 100644 --- a/lnbits/extensions/amilk/models.py +++ b/lnbits/extensions/amilk/models.py @@ -1,7 +1,9 @@ -from typing import NamedTuple +from sqlite3 import Row +from pydantic import BaseModel +#from typing import NamedTuple -class AMilk(NamedTuple): +class AMilk(BaseModel): id: str wallet: str lnurl: str diff --git a/lnbits/extensions/bleskomat/models.py b/lnbits/extensions/bleskomat/models.py index 216f83c6..9b5e4322 100644 --- a/lnbits/extensions/bleskomat/models.py +++ b/lnbits/extensions/bleskomat/models.py @@ -5,9 +5,11 @@ from lnbits import bolt11 from lnbits.core.services import pay_invoice from . import db from .helpers import get_callback_url, LnurlValidationError +from sqlite3 import Row +from pydantic import BaseModel -class Bleskomat(NamedTuple): +class Bleskomat(BaseModel): id: str wallet: str api_key_id: str @@ -19,7 +21,7 @@ class Bleskomat(NamedTuple): fee: str -class BleskomatLnurl(NamedTuple): +class BleskomatLnurl(BaseModel): id: str bleskomat: str wallet: str diff --git a/lnbits/extensions/captcha/models.py b/lnbits/extensions/captcha/models.py index 3179d5c1..2b98a91e 100644 --- a/lnbits/extensions/captcha/models.py +++ b/lnbits/extensions/captcha/models.py @@ -1,10 +1,11 @@ import json from sqlite3 import Row -from typing import NamedTuple, Optional +from pydantic import BaseModel +from typing import Optional -class Captcha(NamedTuple): +class Captcha(BaseModel): id: str wallet: str url: str diff --git a/lnbits/extensions/copilot/models.py b/lnbits/extensions/copilot/models.py index 70d70cf5..7eabaf9b 100644 --- a/lnbits/extensions/copilot/models.py +++ b/lnbits/extensions/copilot/models.py @@ -5,9 +5,10 @@ from quart import url_for from lnurl import Lnurl, encode as lnurl_encode # type: ignore from lnurl.types import LnurlPayMetadata # type: ignore from lnurl.models import LnurlPaySuccessAction, UrlAction # type: ignore +from sqlite3 import Row +from pydantic import BaseModel - -class Copilots(NamedTuple): +class Copilots(BaseModel): id: str user: str title: str diff --git a/lnbits/extensions/diagonalley/models.py b/lnbits/extensions/diagonalley/models.py index 08e15969..ab1c592d 100644 --- a/lnbits/extensions/diagonalley/models.py +++ b/lnbits/extensions/diagonalley/models.py @@ -1,7 +1,8 @@ from typing import NamedTuple +from sqlite3 import Row +from pydantic import BaseModel - -class Indexers(NamedTuple): +class Indexers(BaseModel): id: str wallet: str shopname: str @@ -15,7 +16,7 @@ class Indexers(NamedTuple): email: str -class Products(NamedTuple): +class Products(BaseModel): id: str wallet: str product: str @@ -26,7 +27,7 @@ class Products(NamedTuple): quantity: int -class Orders(NamedTuple): +class Orders(BaseModel): id: str productid: str wallet: str diff --git a/lnbits/extensions/jukebox/models.py b/lnbits/extensions/jukebox/models.py index 03c41d67..f09f7655 100644 --- a/lnbits/extensions/jukebox/models.py +++ b/lnbits/extensions/jukebox/models.py @@ -1,8 +1,8 @@ -from typing import NamedTuple from sqlite3 import Row +from pydantic import BaseModel -class Jukebox(NamedTuple): +class Jukebox(BaseModel): id: str user: str title: str @@ -22,7 +22,7 @@ class Jukebox(NamedTuple): return cls(**dict(row)) -class JukeboxPayment(NamedTuple): +class JukeboxPayment(BaseModel): payment_hash: str juke_id: str song_id: str diff --git a/lnbits/extensions/livestream/models.py b/lnbits/extensions/livestream/models.py index bfe82973..7df1f961 100644 --- a/lnbits/extensions/livestream/models.py +++ b/lnbits/extensions/livestream/models.py @@ -1,12 +1,13 @@ import json from quart import url_for -from typing import NamedTuple, Optional +from typing import Optional from lnurl import Lnurl, encode as lnurl_encode # type: ignore from lnurl.types import LnurlPayMetadata # type: ignore from lnurl.models import LnurlPaySuccessAction, UrlAction # type: ignore +from sqlite3 import Row +from pydantic import BaseModel - -class Livestream(NamedTuple): +class Livestream(BaseModel): id: int wallet: str fee_pct: int @@ -18,7 +19,7 @@ class Livestream(NamedTuple): return lnurl_encode(url) -class Track(NamedTuple): +class Track(BaseModel): id: int download_url: str price_msat: int @@ -74,7 +75,7 @@ class Track(NamedTuple): ) -class Producer(NamedTuple): +class Producer(BaseModel): id: int user: str wallet: str diff --git a/lnbits/extensions/lnticket/models.py b/lnbits/extensions/lnticket/models.py index fdf4a5ff..1bc8237c 100644 --- a/lnbits/extensions/lnticket/models.py +++ b/lnbits/extensions/lnticket/models.py @@ -1,7 +1,6 @@ -from typing import NamedTuple +from pydantic import BaseModel - -class Forms(NamedTuple): +class Forms(BaseModel): id: str wallet: str name: str @@ -13,7 +12,7 @@ class Forms(NamedTuple): time: int -class Tickets(NamedTuple): +class Tickets(BaseModel): id: str form: str email: str diff --git a/lnbits/extensions/lnurlp/models.py b/lnbits/extensions/lnurlp/models.py index c08dca03..f1d4fff1 100644 --- a/lnbits/extensions/lnurlp/models.py +++ b/lnbits/extensions/lnurlp/models.py @@ -1,13 +1,13 @@ import json from urllib.parse import urlparse, urlunparse, parse_qs, urlencode, ParseResult from quart import url_for -from typing import NamedTuple, Optional, Dict -from sqlite3 import Row +from typing import Optional, Dict from lnbits.lnurl import encode as lnurl_encode # type: ignore from lnurl.types import LnurlPayMetadata # type: ignore +from sqlite3 import Row +from pydantic import BaseModel - -class PayLink(NamedTuple): +class PayLink(BaseModel): id: int wallet: str description: str diff --git a/lnbits/extensions/offlineshop/models.py b/lnbits/extensions/offlineshop/models.py index eb767cdf..8839f0dd 100644 --- a/lnbits/extensions/offlineshop/models.py +++ b/lnbits/extensions/offlineshop/models.py @@ -3,17 +3,17 @@ import base64 import hashlib from collections import OrderedDict from quart import url_for -from typing import NamedTuple, Optional, List, Dict +from typing import Optional, List, Dict from lnurl import encode as lnurl_encode # type: ignore from lnurl.types import LnurlPayMetadata # type: ignore from lnurl.models import LnurlPaySuccessAction, UrlAction # type: ignore - +from pydantic import BaseModel from .helpers import totp shop_counters: Dict = {} -class ShopCounter(object): +class ShopCounter(BaseModel): fulfilled_payments: OrderedDict counter: int @@ -54,7 +54,7 @@ class ShopCounter(object): return word -class Shop(NamedTuple): +class Shop(BaseModel): id: int wallet: str method: str @@ -77,7 +77,7 @@ class Shop(NamedTuple): return "" -class Item(NamedTuple): +class Item(BaseModel): shop: int id: int name: str diff --git a/lnbits/extensions/paywall/models.py b/lnbits/extensions/paywall/models.py index d7f2451d..7b64db4c 100644 --- a/lnbits/extensions/paywall/models.py +++ b/lnbits/extensions/paywall/models.py @@ -1,10 +1,11 @@ import json from sqlite3 import Row -from typing import NamedTuple, Optional +from pydantic import BaseModel +from typing import Optional -class Paywall(NamedTuple): +class Paywall(BaseModel): id: str wallet: str url: str diff --git a/lnbits/extensions/satspay/models.py b/lnbits/extensions/satspay/models.py index a7bfa14f..3bac7a2b 100644 --- a/lnbits/extensions/satspay/models.py +++ b/lnbits/extensions/satspay/models.py @@ -1,9 +1,9 @@ from sqlite3 import Row -from typing import NamedTuple +from pydantic import BaseModel import time -class Charges(NamedTuple): +class Charges(BaseModel): id: str user: str description: str diff --git a/lnbits/extensions/splitpayments/models.py b/lnbits/extensions/splitpayments/models.py index 17578f87..e1700059 100644 --- a/lnbits/extensions/splitpayments/models.py +++ b/lnbits/extensions/splitpayments/models.py @@ -1,7 +1,8 @@ -from typing import NamedTuple + +from pydantic import BaseModel -class Target(NamedTuple): +class Target(BaseModel): wallet: str source: str percent: int diff --git a/lnbits/extensions/streamalerts/models.py b/lnbits/extensions/streamalerts/models.py index 20923ebb..81e47386 100644 --- a/lnbits/extensions/streamalerts/models.py +++ b/lnbits/extensions/streamalerts/models.py @@ -1,8 +1,9 @@ from sqlite3 import Row -from typing import NamedTuple, Optional +from pydantic import BaseModel +from typing import Optional -class Donation(NamedTuple): +class Donation(BaseModel): """A Donation simply contains all the necessary information about a user's donation to a streamer """ @@ -22,7 +23,7 @@ class Donation(NamedTuple): return cls(**dict(row)) -class Service(NamedTuple): +class Service(BaseModel): """A Service represents an integration with a third-party API Currently, Streamlabs is the only supported Service. diff --git a/lnbits/extensions/subdomains/models.py b/lnbits/extensions/subdomains/models.py index a519311e..0f2648d2 100644 --- a/lnbits/extensions/subdomains/models.py +++ b/lnbits/extensions/subdomains/models.py @@ -1,7 +1,7 @@ -from typing import NamedTuple +from pydantic import BaseModel -class Domains(NamedTuple): +class Domains(BaseModel): id: str wallet: str domain: str @@ -15,7 +15,7 @@ class Domains(NamedTuple): allowed_record_types: str -class Subdomains(NamedTuple): +class Subdomains(BaseModel): id: str wallet: str domain: str diff --git a/lnbits/extensions/usermanager/models.py b/lnbits/extensions/usermanager/models.py index 97eaaea8..48472119 100644 --- a/lnbits/extensions/usermanager/models.py +++ b/lnbits/extensions/usermanager/models.py @@ -1,8 +1,8 @@ -from typing import NamedTuple from sqlite3 import Row +from pydantic import BaseModel -class Users(NamedTuple): +class Users(BaseModel): id: str name: str admin: str @@ -10,7 +10,7 @@ class Users(NamedTuple): password: str -class Wallets(NamedTuple): +class Wallets(BaseModel): id: str admin: str name: str diff --git a/lnbits/extensions/watchonly/models.py b/lnbits/extensions/watchonly/models.py index b9faa601..cc63283b 100644 --- a/lnbits/extensions/watchonly/models.py +++ b/lnbits/extensions/watchonly/models.py @@ -1,8 +1,8 @@ from sqlite3 import Row -from typing import NamedTuple +from pydantic import BaseModel -class Wallets(NamedTuple): +class Wallets(BaseModel): id: str user: str masterpub: str @@ -15,7 +15,7 @@ class Wallets(NamedTuple): return cls(**dict(row)) -class Mempool(NamedTuple): +class Mempool(BaseModel): user: str endpoint: str @@ -24,7 +24,7 @@ class Mempool(NamedTuple): return cls(**dict(row)) -class Addresses(NamedTuple): +class Addresses(BaseModel): id: str address: str wallet: str diff --git a/lnbits/extensions/withdraw/models.py b/lnbits/extensions/withdraw/models.py index b7a98970..da32ee7d 100644 --- a/lnbits/extensions/withdraw/models.py +++ b/lnbits/extensions/withdraw/models.py @@ -1,11 +1,11 @@ from quart import url_for from lnurl import Lnurl, LnurlWithdrawResponse, encode as lnurl_encode # type: ignore from sqlite3 import Row -from typing import NamedTuple +from pydantic import BaseModel import shortuuid # type: ignore -class WithdrawLink(NamedTuple): +class WithdrawLink(BaseModel): id: str wallet: str title: str @@ -67,7 +67,7 @@ class WithdrawLink(NamedTuple): ) -class HashCheck(NamedTuple): +class HashCheck(BaseModel): id: str lnurl_id: str