| Server IP : 193.86.120.172 / Your IP : 216.73.216.215 Web Server : Apache/2.4.63 (Unix) System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64 User : kubec ( 1026) PHP Version : 8.2.28 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /volume1/web/kadernictvidenisa_cz/api/ |
Upload File : |
<?php
// ============================================
// api/dostupnost.php
// GET /api/dostupnost?sluzba_id=1&datum=2026-06-15
// ============================================
if ($method !== 'GET') json_error('Pouze GET.', 405);
$sluzba_id = (int)($_GET['sluzba_id'] ?? 0);
$datum = $_GET['datum'] ?? '';
if (!$sluzba_id || !valid_date($datum)) {
json_error('Zadejte platné sluzba_id a datum (YYYY-MM-DD).');
}
// Minulost
if ($datum < date('Y-m-d')) {
json_response(['ok' => true, 'volne_casy' => [], 'blokovano' => false]);
}
// Načti službu
$stmt = db()->prepare("SELECT trvani_min FROM sluzby WHERE id = ? AND aktivni = 1");
$stmt->execute([$sluzba_id]);
$sluzba = $stmt->fetch();
if (!$sluzba) json_error('Služba nenalezena.', 404);
$blokovano = je_blokovany_den($datum);
$extra_min = (int)($_GET['extra_min'] ?? 0);
$celkem_min = $sluzba['trvani_min'] + $extra_min;
$volne_casy = $blokovano ? [] : volne_casy($datum, $celkem_min);
// Minimální předstih — aplikuje se na VŠECHNA data, nejen dnes
$min_predem_hod = (int) nastaveni('rezervace_min_predem', 1);
if ($min_predem_hod > 0 && !$blokovano) {
$nejdrive_ts = time() + $min_predem_hod * 3600;
$volne_casy = array_values(array_filter($volne_casy, function($cas) use ($datum, $nejdrive_ts) {
return strtotime($datum . ' ' . $cas . ':00') >= $nejdrive_ts;
}));
}
json_response([
'ok' => true,
'blokovano' => $blokovano,
'volne_casy' => $volne_casy,
]);