Add startup scheme
This commit is contained in:
@@ -573,6 +573,15 @@ async def do_spam_jail(user_id: int) -> None:
|
||||
# ---------------------------------------------------------------------------
|
||||
# Public helpers
|
||||
# ---------------------------------------------------------------------------
|
||||
async def missing_schema_fields() -> list[str]:
|
||||
"""Compare the live PocketBase collection schema against every field the
|
||||
bot persists. PocketBase silently drops writes to undeclared fields, so
|
||||
any name returned here means broken features without error messages."""
|
||||
live = await pb_client.get_collection_fields()
|
||||
expected = set(_default_user()) | {"user_id"}
|
||||
return sorted(expected - live)
|
||||
|
||||
|
||||
async def get_all_users_raw() -> dict[str, "UserData"]:
|
||||
"""Return a snapshot of all user records."""
|
||||
records = await pb_client.list_all_records()
|
||||
|
||||
@@ -147,6 +147,12 @@ async def update_record(record_id: str, data: dict[str, Any]) -> dict[str, Any]:
|
||||
)
|
||||
|
||||
|
||||
async def get_collection_fields() -> set[str]:
|
||||
"""Return the field names defined on the economy collection's schema."""
|
||||
data = await _request("GET", f"{PB_URL}/api/collections/{ECONOMY_COLLECTION}")
|
||||
return {f["name"] for f in data.get("fields", [])}
|
||||
|
||||
|
||||
async def count_records() -> int:
|
||||
"""Return the total number of records in the collection (single cheap request)."""
|
||||
data = await _request(
|
||||
|
||||
Reference in New Issue
Block a user