from typing import List, Optional from fastapi import APIRouter, Depends, Query from sqlmodel import Session from apis.base import StandardResponse, standard_response from db.database import get_db from entity.device_model_relation import DeviceModelRelationInfo, DeviceModelRelationCreate, DeviceModelRelation from services.device_model_relation_service import DeviceModelRelationService from algo.algo_runner import AlgoRunner from algo.algo_runner_manager import get_algo_runner router = APIRouter() @router.get("/list_by_device", response_model=StandardResponse[List[DeviceModelRelationInfo]]) def list_by_device( device_id: int, db: Session = Depends(get_db)): service = DeviceModelRelationService(db) models = list(service.get_device_models(device_id)) return standard_response(data=models) # @router.post("/add_by_device", response_model=StandardResponse[List[DeviceModelRelation]]) # def add_by_device(relation_data: List[DeviceModelRelationCreate], # device_id: int = Query(...), # db: Session = Depends(get_db)): # service = DeviceModelRelationService(db) # relations = service.add_relations_by_device(device_id, relation_data) # return standard_response(data=relations) @router.post("/update_by_device", response_model=StandardResponse[List[DeviceModelRelation]]) def update_by_device(relation_data: List[DeviceModelRelationCreate], device_id: int = Query(...), algo_runner: AlgoRunner = Depends(get_algo_runner)): service = algo_runner.relation_service relations = service.update_relations_by_device(device_id, relation_data) return standard_response(data=relations) # @router.delete("/delete_by_device", response_model=StandardResponse[int]) # def delete_device(device_id: int, db: Session = Depends(get_db)): # service = DeviceModelRelationService(db) # count = service.delete_relations_by_device(device_id) # return standard_response(data=count)