from datetime import datetime from fastapi import APIRouter from models.schemas import HealthResponse, RootResponse, ServiceStatus from services.config import SERVICES router = APIRouter() @router.get( "/", response_model=RootResponse, summary="API Root", description="Get basic API information", tags=["General"], ) async def root(): """Get basic API information and version""" return RootResponse(message="LabFusion Service Adapters API", version="1.0.0") @router.get( "/health", response_model=HealthResponse, summary="Health Check", description="Check service health status", tags=["General"], ) async def health_check(): """Check the health status of the service adapters""" return HealthResponse(status="healthy", timestamp=datetime.now().isoformat()) @router.get( "/services", response_model=dict, summary="Get Service Status", description="Get status of all configured external services", tags=["Services"], ) async def get_services(): """Get status of all configured external services (Home Assistant, Frigate, Immich, n8n)""" service_status = {} for service_name, config in SERVICES.items(): service_status[service_name] = ServiceStatus( enabled=config["enabled"], url=config["url"], status="unknown", # Would check actual service status ) return service_status