Files
remnawave-bedolaga-telegram…/app/webapi/schemas/backups.py
PEDZEO 1aade85fc9 Add backup management endpoints
- Implemented download, restore, upload and delete functionalities for backups.
- Added corresponding request and response schemas for backup operations.
- Enhanced security checks to prevent unauthorized access to backup files.
2025-12-27 04:33:13 +03:00

75 lines
1.7 KiB
Python

from __future__ import annotations
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
class BackupCreateResponse(BaseModel):
task_id: str
status: str = Field(..., description="Текущий статус задачи")
class BackupInfo(BaseModel):
filename: str
filepath: str
timestamp: Optional[datetime] = None
tables_count: Optional[int] = None
total_records: Optional[int] = None
compressed: bool
file_size_bytes: int
file_size_mb: float
created_by: Optional[int] = None
database_type: Optional[str] = None
version: Optional[str] = None
error: Optional[str] = None
class BackupListResponse(BaseModel):
items: list[BackupInfo]
total: int
limit: int
offset: int
class BackupStatusResponse(BaseModel):
task_id: str
status: str
message: Optional[str] = None
file_path: Optional[str] = Field(
default=None,
description="Полный путь до созданного бекапа, если задача завершена",
)
created_by: Optional[int] = None
created_at: datetime
updated_at: datetime
class BackupTaskInfo(BackupStatusResponse):
pass
class BackupTaskListResponse(BaseModel):
items: list[BackupTaskInfo]
total: int
class BackupRestoreRequest(BaseModel):
clear_existing: bool = Field(
default=False,
description="Очистить существующие данные перед восстановлением"
)
class BackupRestoreResponse(BaseModel):
success: bool
message: str
tables_restored: Optional[int] = None
records_restored: Optional[int] = None
class BackupDeleteResponse(BaseModel):
success: bool
message: str