<?php

/**
 * Multi-Product Firmware API - Products Endpoint
 *
 * URL Format: /api/v1/products
 * Example: /api/v1/products
 *
 * Query Parameters:
 * - format: Response format (json, simple) - default: json
 *
 * Response Format:
 * {
 *   "products": {
 *     "climate-controller": {
 *       "name": "Climate Controller",
 *       "devices": ["rm-e32-r6-b6", "esp32-s3-poe-eth-8di-8ro-c"],
 *       "stages": ["dev", "staging", "prod"]
 *     },
 *     "adc-module": {
 *       "name": "ADC Module",
 *       "devices": ["esp32-adc-v1", "esp32-adc-v2"],
 *       "stages": ["dev", "staging", "prod"]
 *     }
 *   },
 *   "total_products": 2
 * }
 */

require_once 'common.php';

// Get query parameters
$format = $_GET['format'] ?? 'json';

// Log the access
logAccess('', '', '', 'products_list');

// Build response
$products = [];
foreach (VALID_PRODUCTS as $productId => $productInfo) {
    $products[$productId] = [
        'name' => $productInfo['name'],
        'devices' => $productInfo['devices'],
        'stages' => VALID_STAGES
    ];
}

$response = [
    'products' => $products,
    'total_products' => count($products)
];

// Handle different response formats
if ($format === 'simple') {
    // Simple format for basic clients
    $simple = [
        'products' => array_keys($products),
        'count' => count($products)
    ];
    sendJsonResponse($simple);
} else {
    // Full JSON response
    sendJsonResponse($response);
}
