// cash-salary.jsx — управлінський облік готівкової частини ЗП («в конверті»)
// Чутлива інформація: видимість керується перемикачем, доступним лише
// директору та бухгалтеру. Дані не виходять за межі управлінського контуру.

window.CASH_LABELS = { official: "Офіційно", cash: "Готівкою" };

// Готівкова (неофіційна) частина ЗП конкретної людини — фіксована, на місяць
window.getCashSalary = (personId) => {
  const p = window.getTeam(personId);
  return p && p.cashSalary ? p.cashSalary : 0;
};
// Сума готівкових виплат по всій компанії за місяць
window.totalCashMonthly = () =>
  window.DATA.TEAM.reduce((s, p) => s + (p.cashSalary || 0), 0);

// ---- спільна видимість (перемикач) ----
window.__cashVisible = (typeof localStorage !== "undefined" && localStorage.getItem("pdflow_cash_visible") === "1");
window.setCashVisible = (v) => {
  window.__cashVisible = !!v;
  try { localStorage.setItem("pdflow_cash_visible", v ? "1" : "0"); } catch (e) {}
  window.dispatchEvent(new Event("pdflow-cashvis"));
};
window.useCashVisible = function () {
  const [v, setV] = React.useState(window.__cashVisible);
  React.useEffect(() => {
    const h = () => setV(window.__cashVisible);
    window.addEventListener("pdflow-cashvis", h);
    return () => window.removeEventListener("pdflow-cashvis", h);
  }, []);
  return v;
};
// Чи має роль доступ до готівкового контуру
window.canSeeCash = (role) => role === "director" || role === "accountant";

// Перемикач показу готівкової частини
function CashToggle({ role }) {
  const v = window.useCashVisible();
  if (!window.canSeeCash(role)) return null;
  return (
    <button
      className={`cash-toggle ${v ? "is-on" : ""}`}
      onClick={() => window.setCashVisible(!v)}
      title="Готівкова частина ЗП — конфіденційно, лише директор і бухгалтер"
    >
      <span className="cash-toggle-track"><span className="cash-toggle-knob"></span></span>
      <span>{v ? "Готівку показано" : "Показати готівку"}</span>
    </button>
  );
}
window.CashToggle = CashToggle;
