lnbits-legend/lnbits/extensions/admin/models.py
2022-10-05 13:01:59 +02:00

71 lines
1.9 KiB
Python

from sqlite3 import Row
from typing import List, Optional
from fastapi import Query
from pydantic import BaseModel, Field
class UpdateAdminSettings(BaseModel):
# users
admin_users: str = Query(None)
allowed_users: str = Query(None)
admin_ext: str = Query(None)
disabled_ext: str = Query(None)
funding_source: str = Query(None)
# ops
force_https: bool = Query(None)
service_fee: float = Query(None, ge=0)
hide_api: bool = Query(None)
# Change theme
site_title: str = Query(None)
site_tagline: str = Query(None)
site_description: str = Query(None)
default_wallet_name: str = Query(None)
denomination: str = Query(None)
theme: str = Query(None)
ad_space: str = Query(None)
class Admin(BaseModel):
# users
user: str
admin_users: Optional[str]
allowed_users: Optional[str]
admin_ext: Optional[str]
disabled_ext: Optional[str]
funding_source: Optional[str]
# ops
data_folder: Optional[str]
database_url: Optional[str]
force_https: bool = Field(default=True)
service_fee: float = Field(default=0)
hide_api: bool = Field(default=False)
# Change theme
site_title: Optional[str]
site_tagline: Optional[str]
site_description: Optional[str]
default_wallet_name: Optional[str]
denomination: str = Field(default="sats")
theme: Optional[str]
ad_space: Optional[str]
@classmethod
def from_row(cls, row: Row) -> "Admin":
data = dict(row)
return cls(**data)
class Funding(BaseModel):
id: str
backend_wallet: str
endpoint: str = Query(None)
port: str = Query(None)
read_key: str = Query(None)
invoice_key: str = Query(None)
admin_key: str = Query(None)
cert: str = Query(None)
balance: int = Query(None)
selected: int
@classmethod
def from_row(cls, row: Row) -> "Funding":
data = dict(row)
return cls(**data)