lnbits-legend/lnbits/extensions/admin/models.py

65 lines
1.7 KiB
Python
Raw Normal View History

2022-03-07 05:03:32 +00:00
from sqlite3 import Row
2022-03-12 14:18:09 +00:00
from typing import List, Optional
2022-03-07 05:03:32 +00:00
2022-03-12 14:18:09 +00:00
from fastapi import Query
2022-03-18 16:59:06 +00:00
from pydantic import BaseModel, Field
2022-03-12 14:18:09 +00:00
class UpdateAdminSettings(BaseModel):
site_title: Optional[str]
site_tagline: Optional[str]
site_description: Optional[str]
allowed_users: Optional[str]
admin_users: Optional[str]
default_wallet_name: Optional[str]
data_folder: Optional[str]
disabled_ext: Optional[str]
force_https: Optional[bool]
service_fee: Optional[float]
funding_source: Optional[str]
class Admin(BaseModel):
2022-03-18 16:59:06 +00:00
# users
2022-03-07 05:03:32 +00:00
user: str
2022-03-18 16:59:06 +00:00
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
2022-03-12 14:18:09 +00:00
site_title: Optional[str]
site_tagline: Optional[str]
site_description: Optional[str]
2022-03-18 16:59:06 +00:00
default_wallet_name: Optional[str]
denomination: str = Field(default="sats")
theme: Optional[str]
ad_space: Optional[str]
2022-03-07 05:03:32 +00:00
@classmethod
def from_row(cls, row: Row) -> "Admin":
data = dict(row)
return cls(**data)
2022-03-12 14:18:09 +00:00
class Funding(BaseModel):
2022-03-07 05:03:32 +00:00
id: str
backend_wallet: str
2022-03-12 14:18:09 +00:00
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)
2022-03-07 05:03:32 +00:00
selected: int
@classmethod
def from_row(cls, row: Row) -> "Funding":
data = dict(row)
return cls(**data)