|
# retoor <retoor@molodetz.nl>
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any, Optional
|
|
|
|
from devplacepy.schemas.admin import AdminUserOut
|
|
from devplacepy.schemas.base import _Out
|
|
|
|
|
|
class ReportOut(_Out):
|
|
uid: Optional[str] = None
|
|
target_type: Optional[str] = None
|
|
target_uid: Optional[str] = None
|
|
target_url: Optional[str] = None
|
|
reason: Optional[str] = None
|
|
reason_label: Optional[str] = None
|
|
detail: Optional[str] = None
|
|
severity: Optional[str] = None
|
|
status: Optional[str] = None
|
|
origin: Optional[str] = None
|
|
categories: list[str] = []
|
|
created_at: Optional[str] = None
|
|
updated_at: Optional[str] = None
|
|
resolved_at: Optional[str] = None
|
|
reporter_name: Optional[str] = None
|
|
owner_name: Optional[str] = None
|
|
report_count: Optional[int] = None
|
|
|
|
|
|
class ReportCreatedOut(_Out):
|
|
report: Optional[ReportOut] = None
|
|
sla_hours: Optional[int] = None
|
|
message: Optional[str] = None
|
|
|
|
|
|
class ReportListOut(_Out):
|
|
reports: list[ReportOut] = []
|
|
pagination: Optional[Any] = None
|
|
status: Optional[str] = None
|
|
reasons: list[Any] = []
|
|
|
|
|
|
class ReportReasonsOut(_Out):
|
|
reasons: list[Any] = []
|
|
severities: list[str] = []
|
|
|
|
|
|
class ModerationActionOut(_Out):
|
|
uid: Optional[str] = None
|
|
report_uid: Optional[str] = None
|
|
action: Optional[str] = None
|
|
actor_name: Optional[str] = None
|
|
reason: Optional[str] = None
|
|
notes: Optional[str] = None
|
|
expires_at: Optional[str] = None
|
|
created_at: Optional[str] = None
|
|
|
|
|
|
class SlaOut(_Out):
|
|
sla_hours: Optional[int] = None
|
|
oldest_open_hours: Optional[float] = None
|
|
oldest_open_uid: Optional[str] = None
|
|
breached: Optional[int] = None
|
|
within_sla: Optional[bool] = None
|
|
|
|
|
|
class AdminModerationOut(_Out):
|
|
reports: list[ReportOut] = []
|
|
pagination: Optional[Any] = None
|
|
status: Optional[str] = None
|
|
statuses: list[Any] = []
|
|
counts: dict = {}
|
|
sla: Optional[SlaOut] = None
|
|
admin_section: Optional[str] = None
|
|
|
|
|
|
class AdminReportOut(_Out):
|
|
report: Optional[ReportOut] = None
|
|
actions: list[ModerationActionOut] = []
|
|
history: list[ModerationActionOut] = []
|
|
available_actions: list[str] = []
|
|
can_remove: Optional[bool] = None
|
|
subject: Optional[AdminUserOut] = None
|
|
sla: Optional[SlaOut] = None
|
|
admin_section: Optional[str] = None
|
|
|
|
|
|
class MaturityOut(_Out):
|
|
target_type: Optional[str] = None
|
|
target_uid: Optional[str] = None
|
|
level: Optional[str] = None
|
|
source: Optional[str] = None
|
|
|
|
|
|
class ConsentOut(_Out):
|
|
kind: Optional[str] = None
|
|
label: Optional[str] = None
|
|
state: Optional[str] = None
|
|
version: Optional[str] = None
|
|
granted_at: Optional[str] = None
|
|
withdrawn_at: Optional[str] = None
|
|
|
|
|
|
class ConsentListOut(_Out):
|
|
consents: list[ConsentOut] = []
|
|
|
|
|
|
class AcceptTermsOut(_Out):
|
|
terms_version: Optional[str] = None
|
|
accepted_version: Optional[str] = None
|
|
|
|
|
|
class AccountDeletionOut(_Out):
|
|
username: Optional[str] = None
|
|
grace_hours: Optional[int] = None
|
|
retained: list[str] = []
|
|
removed: list[str] = []
|
|
|
|
|
|
class WorkspaceIndexItemOut(_Out):
|
|
uid: Optional[str] = None
|
|
name: Optional[str] = None
|
|
slug: Optional[str] = None
|
|
owner_uid: Optional[str] = None
|
|
url: Optional[str] = None
|
|
description: Optional[str] = None
|
|
owner: Optional[str] = None
|
|
maturity: Optional[str] = None
|
|
project_url: Optional[str] = None
|
|
|
|
|
|
class WorkspaceIndexOut(_Out):
|
|
workspaces: list[WorkspaceIndexItemOut] = []
|
|
pagination: Optional[Any] = None
|
|
total: Optional[int] = None
|