xbackend/schemas/dashboard.py

106 lines
1.8 KiB
Python

import uuid
from datetime import datetime
from enum import Enum
from typing import List, Dict
from pydantic import BaseModel
from schemas import DBBase
class DashboardBase(BaseModel):
name: str = None
# 解析请求json 创建项目
class DashboardCreate(DashboardBase):
name: str
project_id: str
# cat: str
pid: str
class ReadDashboard(BaseModel):
id: str
class DashboardDelete(BaseModel):
ids: List[str]
class Report(BaseModel):
name: str = None
report_id: str = None
graph_type: str = None
ascending: bool = None
model: str = None
graph_size: str = None
sort: int = None
modelswitch: bool = None
avesumdata: bool = True
daydata: bool = True
reverseorder: bool = True
class EditShowReport(BaseModel):
dashboard_id: str
config: Report
class Category(str, Enum):
project = 'kanban'
space = 'space'
class EditDashboard(BaseModel):
dashboard_id: str
new_name: str
class DashboardMove(BaseModel):
source_ids: List[str]
dest_pid: str
cat: Category
class Sort(BaseModel):
dashboard_id: str
sort: int
class DashboardSort(BaseModel):
sort: List[Sort]
class DashboardCopy(BaseModel):
source_ids: List[str]
dest_project_id: str
class DashboardCopyToSpace(BaseModel):
source_ids: List[str]
project_id: str
dest_space_id: str
class AddReport(DBBase):
report_ids: List[Report]
class DelReport(DBBase):
report_id: str
class EditReport(DBBase):
report: Report
# --------------------------------------------------------------
# 数据库模型
class DashboardDB(DBBase):
name: str
user_id: str
project_id: str
# cat: Category
reports: List[str] = []
pid: str
create_date: datetime = datetime.now()