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 app_instance import get_app router = APIRouter() app = get_app() def get_service(): return app.state.device_model_relation_service @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(...), service: DeviceModelRelationService = Depends(get_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)