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 report_id: str graph_type: str ascending: bool model: str graph_size: str sort: int = 1 modelswitch: bool = False 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()