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)
|