99 lines
1.6 KiB
Python
99 lines
1.6 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 = 999
|
|
modelswitch: bool = None
|
|
|
|
|
|
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 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()
|