Initial commit
This commit is contained in:
52
server/app/models.py
Normal file
52
server/app/models.py
Normal file
@@ -0,0 +1,52 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
from typing import Optional
|
||||
|
||||
from sqlmodel import SQLModel, Field
|
||||
|
||||
|
||||
class JobStatus(str, Enum):
|
||||
QUEUED = "QUEUED"
|
||||
RUNNING = "RUNNING"
|
||||
COMPLETED = "COMPLETED"
|
||||
FAILED = "FAILED"
|
||||
|
||||
|
||||
class Job(SQLModel, table=True):
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
profile_name: str
|
||||
client_host: str
|
||||
folders: str
|
||||
ssh_username: str
|
||||
run_id: str
|
||||
status: JobStatus = Field(sa_column_kwargs={"default": JobStatus.QUEUED})
|
||||
progress: int = 0
|
||||
summary: Optional[str] = None
|
||||
log_path: Optional[str] = None
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
|
||||
class Profile(SQLModel, table=True):
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
name: str
|
||||
folders: str
|
||||
schedule_enabled: bool = Field(default=False)
|
||||
description: Optional[str] = None
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
updated_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
|
||||
|
||||
class Token(SQLModel, table=True):
|
||||
token: str = Field(primary_key=True)
|
||||
user: str
|
||||
expires_at: datetime
|
||||
|
||||
|
||||
class RunHistory(SQLModel, table=True):
|
||||
id: Optional[int] = Field(default=None, primary_key=True)
|
||||
profile_name: str
|
||||
run_id: str
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
Reference in New Issue
Block a user