chore: properly define model types (#94)

This commit is contained in:
dni ⚡ 2025-08-18 10:42:06 +02:00 committed by GitHub
commit 860d281a18
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,12 +1,11 @@
import json import json
from datetime import datetime from datetime import datetime, timezone
from typing import Optional
from fastapi import Query, Request from fastapi import Query, Request
from lnbits.helpers import normalize_path from lnbits.helpers import normalize_path
from lnurl import encode as lnurl_encode from lnurl import encode as lnurl_encode
from lnurl.types import LnurlPayMetadata from lnurl.types import LnurlPayMetadata
from pydantic import BaseModel from pydantic import BaseModel, Field
from .helpers import parse_nostr_private_key from .helpers import parse_nostr_private_key
from .nostr.key import PrivateKey from .nostr.key import PrivateKey
@ -26,19 +25,19 @@ class LnurlpSettings(BaseModel):
class CreatePayLinkData(BaseModel): class CreatePayLinkData(BaseModel):
description: str description: str
wallet: Optional[str] = None wallet: str | None = None
min: float = Query(1, ge=0.01) min: float = Query(1, ge=0.01)
max: float = Query(1, ge=0.01) max: float = Query(1, ge=0.01)
currency: str = Query(None)
comment_chars: int = Query(0, ge=0, le=799) comment_chars: int = Query(0, ge=0, le=799)
webhook_url: str = Query(None) currency: str | None = Query(None)
webhook_headers: str = Query(None) webhook_url: str | None = Query(None)
webhook_body: str = Query(None) webhook_headers: str | None = Query(None)
success_text: str = Query(None) webhook_body: str | None = Query(None)
success_url: str = Query(None) success_text: str | None = Query(None)
fiat_base_multiplier: int = Query(100, ge=1) success_url: str | None = Query(None)
username: str = Query(None) fiat_base_multiplier: int | None = Query(100, ge=1)
zaps: Optional[bool] = Query(False) username: str | None = Query(None)
zaps: bool | None = Query(False)
disposable: bool | None = Query(True) disposable: bool | None = Query(True)
@ -47,22 +46,22 @@ class PayLink(BaseModel):
wallet: str wallet: str
description: str description: str
min: float min: float
max: float
served_meta: int served_meta: int
served_pr: int served_pr: int
username: Optional[str]
zaps: Optional[bool]
domain: Optional[str]
webhook_url: Optional[str]
webhook_headers: Optional[str]
webhook_body: Optional[str]
success_text: Optional[str]
success_url: Optional[str]
currency: Optional[str]
comment_chars: int comment_chars: int
max: float created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
fiat_base_multiplier: int updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
created_at: datetime username: str | None = None
updated_at: datetime zaps: bool | None = None
domain: str | None = None
webhook_url: str | None = None
webhook_headers: str | None = None
webhook_body: str | None = None
success_text: str | None = None
success_url: str | None = None
currency: str | None = None
fiat_base_multiplier: int | None = None
disposable: bool disposable: bool
@ -73,7 +72,6 @@ class PayLink(BaseModel):
if url.netloc.endswith(".onion"): if url.netloc.endswith(".onion"):
# change url string scheme to http # change url string scheme to http
url_str = url_str.replace("https://", "http://") url_str = url_str.replace("https://", "http://")
return lnurl_encode(url_str) return lnurl_encode(url_str)
@property @property