Files
ad/molodetz/schemas/admin.py
T

93 lines
2.0 KiB
Python
Raw Normal View History

2026-10-05 09:36:20 +02:00
# retoor <retoor@molodetz.nl>
from typing import Any
from molodetz.schemas.base import OutModel, PublicUserOut
from molodetz.schemas.posts import PostOut
class AdminIndexOut(OutModel):
post_count: int = 0
open_joins: int = 0
user_count: int = 0
deleted_count: int = 0
class AdminPostsOut(OutModel):
posts: list[PostOut] = []
class ServiceOut(OutModel):
name: str | None = None
title: str | None = None
description: str | None = None
status: str | None = None
enabled: bool = False
last_run: str | None = None
next_run: str | None = None
heartbeat: str | None = None
metrics: dict[str, Any] = {}
logs: list[str] = []
fields: list[dict[str, Any]] = []
class ServicesOut(OutModel):
services: list[ServiceOut] = []
class ServiceDetailOut(OutModel):
service: ServiceOut | None = None
class SettingsOut(OutModel):
settings: dict[str, str] = {}
class AdminUsersOut(OutModel):
users: list[PublicUserOut] = []
class TrashItemOut(OutModel):
table: str | None = None
uid: str | None = None
label: str | None = None
deleted_at: str | None = None
deleted_by: str | None = None
class TrashOut(OutModel):
items: list[TrashItemOut] = []
class AuditRowOut(OutModel):
uid: str | None = None
event_key: str | None = None
category: str | None = None
actor_kind: str | None = None
actor_uid: str | None = None
result: str | None = None
message: str | None = None
created_at: str | None = None
class AuditOut(OutModel):
rows: list[AuditRowOut] = []
class BackupRowOut(OutModel):
uid: str | None = None
target: str | None = None
status: str | None = None
size_bytes: int | None = None
error: str | None = None
created_at: str | None = None
finished_at: str | None = None
class BackupsOut(OutModel):
backups: list[BackupRowOut] = []
class StatsOut(OutModel):
top_paths: list[dict[str, Any]] = []
daily: list[dict[str, Any]] = []