<?php
// Dynamic manifest.json generator
header('Content-Type: application/json');

// Define BASE_PATH
if (!defined('BASE_PATH')) {
    define('BASE_PATH', dirname(__DIR__));
}

// Load database
require_once BASE_PATH . '/app/Core/Database.php';

use App\Core\Database;

$db = Database::getInstance()->getConnection();

// Fetch app settings
$stmt = $db->query("SELECT setting_key, setting_value FROM settings");
$settings = [];
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    if (!empty($row['setting_key'])) {
        $settings[$row['setting_key']] = $row['setting_value'] ?? '';
    }
}

$appName = !empty($settings['app_name']) ? $settings['app_name'] : 'Zent Tasks';
$appColor = !empty($settings['app_color']) ? $settings['app_color'] : '#6f42c1';
$appIcon = !empty($settings['app_favicon']) ? $settings['app_favicon'] : (!empty($settings['app_logo_slim']) ? $settings['app_logo_slim'] : '/assets/img/mobile_icon.png');

$manifest = [
    'name' => $appName,
    'short_name' => substr($appName, 0, 12), // Max 12 chars for short name
    'start_url' => '/login',
    'display' => 'standalone',
    'background_color' => '#ffffff',
    'theme_color' => $appColor,
    'icons' => [
        [
            'src' => $appIcon,
            'sizes' => '192x192',
            'type' => 'image/png'
        ],
        [
            'src' => $appIcon,
            'sizes' => '512x512',
            'type' => 'image/png'
        ]
    ]
];

echo json_encode($manifest, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
