from typing import Any, Dict, Optional, Union from fastapi import HTTPException from fastapi.encoders import jsonable_encoder from sqlalchemy.orm import Session from crud.base import CRUDBase from models.authority import Authority from models.dashboard import Dashboard from models.folders import Folder from models.space import Space from schemas import DashboardCreate, DashboardUpdate class CRUDDashboard(CRUDBase[Dashboard, DashboardCreate, DashboardUpdate]): def create_with_dashboard( self, db: Session, *, obj_in: DashboardCreate, user_id: int ) -> Dashboard: obj_in_data = jsonable_encoder(obj_in) db_obj = self.model(**obj_in_data, user_id=user_id) db.add(db_obj) db.commit() db.refresh(db_obj) return db_obj dashboard = CRUDDashboard(Dashboard)