Initial commit
This commit is contained in:
62
server/app/schemas.py
Normal file
62
server/app/schemas.py
Normal file
@@ -0,0 +1,62 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
from typing import List, Optional
|
||||
|
||||
from pydantic import BaseModel, Field, constr
|
||||
|
||||
|
||||
class TokenType(str, Enum):
|
||||
bearer = "bearer"
|
||||
|
||||
|
||||
class AuthToken(BaseModel):
|
||||
access_token: str
|
||||
token_type: TokenType
|
||||
expires_at: datetime
|
||||
|
||||
|
||||
class ProfileBase(BaseModel):
|
||||
name: constr(min_length=1)
|
||||
folders: List[str] = Field(..., min_items=1)
|
||||
description: Optional[str] = None
|
||||
schedule_enabled: bool = False
|
||||
|
||||
|
||||
class ProfileCreate(ProfileBase):
|
||||
pass
|
||||
|
||||
|
||||
class ProfileRead(ProfileBase):
|
||||
id: int
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class BackupStartRequest(BaseModel):
|
||||
profile_id: int
|
||||
client_host: str
|
||||
ssh_username: str
|
||||
ssh_password: str
|
||||
folders: Optional[List[str]] = None
|
||||
|
||||
|
||||
class JobStatusResponse(BaseModel):
|
||||
job_id: int
|
||||
status: str
|
||||
progress: int
|
||||
summary: Optional[str]
|
||||
last_log_lines: List[str] = []
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class BackupLog(BaseModel):
|
||||
job_id: int
|
||||
lines: List[str]
|
||||
|
||||
|
||||
class HealthResponse(BaseModel):
|
||||
status: str
|
||||
version: str
|
||||
Reference in New Issue
Block a user