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()