<?php
require 'db.php';
header('Content-Type: application/json; charset=utf-8');
mysqli_set_charset($conn, 'utf8mb4');

function json_ok($data = []) { echo json_encode($data, JSON_UNESCAPED_UNICODE); exit; }
function json_err($code, $msg) { http_response_code($code); echo json_encode(['success'=>false,'error'=>$msg], JSON_UNESCAPED_UNICODE); exit; }
function toYMD($str) {
  if(!$str) return '';
  if(preg_match('/^\d{4}-\d{2}-\d{2}$/',$str)) return $str;
  if(preg_match('/^(\d{2})[\/\.\-](\d{2})[\/\.\-](\d{4})$/',$str,$m)) return sprintf('%04d-%02d-%02d',$m[3],$m[2],$m[1]);
  $t=strtotime($str); return $t?date('Y-m-d',$t):$str;
}
function read_body() {
  $raw = file_get_contents('php://input');
  $data = json_decode($raw, true);
  if (is_array($data)) return $data;
  parse_str($raw, $f); return is_array($f)?$f:[];
}

$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';

/* GET: lista djelatnika + godišnji */
if ($method === 'GET' && !isset($_GET['action'])) {
  $djelatnici = [];
  $res = $conn->query("SELECT id, ime, ukupno FROM djelatnici ORDER BY ime ASC");
  while ($row = $res->fetch_assoc()) {
    $row['id'] = (int)$row['id'];
    $row['ukupno'] = (int)$row['ukupno'];
    $row['godisnji'] = [];
    $djelatnici[$row['id']] = $row;
  }
  $res2 = $conn->query("SELECT id, djelatnik_id, datum_od, datum_do FROM godisnji ORDER BY datum_od ASC");
  while ($row = $res2->fetch_assoc()) {
    $did = (int)$row['djelatnik_id'];
    if (!isset($djelatnici[$did])) continue;
    $djelatnici[$did]['godisnji'][] = [
      'id' => (int)$row['id'],
      'djelatnik_id' => $did,
      'datum_od' => toYMD($row['datum_od']),
      'datum_do' => toYMD($row['datum_do']),
    ];
  }
  json_ok(array_values($djelatnici));
}

/* GET fallback: action=delete&id=... */
if ($method === 'GET' && ($_GET['action'] ?? '') === 'delete') {
  $id = (int)($_GET['id'] ?? 0);
  if ($id <= 0) json_err(400, 'Nevažeći ID');
  $stmt = $conn->prepare("DELETE FROM godisnji WHERE id = ?");
  $stmt->bind_param("i",$id);
  $ok = $stmt->execute();
  json_ok(['success'=>$ok && $stmt->affected_rows>0, 'id'=>$id, 'mode'=>'GET']);
}

/* POST: dodavanje + brisanje (emulacija) */
if ($method === 'POST') {
  $data = read_body();
  $type = $data['type'] ?? '';

  if ($type === 'djelatnik') {
    $ime = trim($data['ime'] ?? '');
    $ukupno = (int)($data['ukupno'] ?? 0);
    if ($ime === '' || $ukupno <= 0) json_err(400,'Nedostaju podaci');
    $stmt = $conn->prepare("INSERT INTO djelatnici (ime, ukupno) VALUES (?, ?)");
    $stmt->bind_param("si",$ime,$ukupno);
    $stmt->execute();
    json_ok(['success'=>true,'id'=>$stmt->insert_id]);
  }

  if ($type === 'godisnji') {
    $did = (int)($data['djelatnik_id'] ?? 0);
    $od = toYMD($data['datum_od'] ?? '');
    $do = toYMD($data['datum_do'] ?? '');
    if ($did<=0 || !$od || !$do) json_err(400,'Nedostaju datumi');
    $stmt = $conn->prepare("INSERT INTO godisnji (djelatnik_id, datum_od, datum_do) VALUES (?, ?, ?)");
    $stmt->bind_param("iss",$did,$od,$do);
    $stmt->execute();
    json_ok(['success'=>true,'id'=>$stmt->insert_id]);
  }

  if ($type === 'delete_godisnji') {
    $id = (int)($data['id'] ?? 0);
    if ($id<=0) json_err(400,'Nevažeći ID');
    $stmt = $conn->prepare("DELETE FROM godisnji WHERE id = ?");
    $stmt->bind_param("i",$id);
    $stmt->execute();
    json_ok(['success'=>$stmt->affected_rows>0, 'mode'=>'POST']);
  }

  json_err(400,'Nepoznata POST akcija');
}

/* PUT: uređivanje */
if ($method === 'PUT') {
  $data = read_body();
  $id = (int)($data['id'] ?? 0);
  $od = toYMD($data['datum_od'] ?? '');
  $do = toYMD($data['datum_do'] ?? '');
  if ($id<=0 || !$od || !$do) json_err(400,'Nedostaje ID ili datumi');
  $stmt = $conn->prepare("UPDATE godisnji SET datum_od = ?, datum_do = ? WHERE id = ?");
  $stmt->bind_param("ssi",$od,$do,$id);
  $ok = $stmt->execute();
  json_ok(['success'=>$ok]);
}

/* DELETE: izravno brisanje (id u query stringu) */
if ($method === 'DELETE') {
  parse_str($_SERVER['QUERY_STRING'] ?? '', $q);
  $id = (int)($q['id'] ?? 0);
  if ($id<=0) json_err(400,'Nevažeći ID');
  $stmt = $conn->prepare("DELETE FROM godisnji WHERE id = ?");
  $stmt->bind_param("i",$id);
  $stmt->execute();
  json_ok(['success'=>$stmt->affected_rows>0, 'mode'=>'DELETE']);
}

json_err(405,'Metoda nije podržana');
