"""
Hardware Router
API endpoints for hardware management
"""

from fastapi import APIRouter, HTTPException
from typing import List

from app.models.schemas import Hardware, HardwareCreate
from app.core.database import execute_query

router = APIRouter()


@router.get("/hardware", response_model=List[Hardware])
async def list_hardware():
    """List all hardware"""
    query = "SELECT * FROM hardware ORDER BY created_at DESC"
    hardware = execute_query(query)
    return hardware


@router.get("/hardware/{hardware_id}", response_model=Hardware)
async def get_hardware(hardware_id: int):
    """Get specific hardware"""
    query = "SELECT * FROM hardware WHERE id = %s"
    hardware = execute_query(query, (hardware_id,))
    
    if not hardware:
        raise HTTPException(status_code=404, detail="Hardware not found")
    
    return hardware[0]


@router.post("/hardware", response_model=Hardware)
async def create_hardware(hardware: HardwareCreate):
    """Create new hardware entry"""
    query = """
        INSERT INTO hardware (serial_number, model, customer_id)
        VALUES (%s, %s, %s)
        RETURNING *
    """
    result = execute_query(
        query,
        (hardware.serial_number, hardware.model, hardware.customer_id)
    )
    return result[0]
