import { create } from "zustand"; import { persist } from "zustand/middleware"; /** * Сеанс СОТРУДНИКА — учётка CRM, которой берут просмотр от лица водителя. * * Хранится отдельно от водительского: это два разных токена с разным смыслом. * «Перестать смотреть за водителя» обязано оставлять сотрудника залогиненным, * иначе смена водителя каждый раз означала бы новый ввод пароля; и наоборот — * `clear()` водительского сеанса не должен трогать сотрудника. */ interface StaffState { token: string | null; username: string | null; /** Боевая оплата под просмотром: платёж уходит в банк и зачисляется водителю. * Выключено по умолчанию — под чужим лицом легко забыть, кого пополняешь. */ livePay: boolean; setStaff: (token: string, username: string) => void; setLivePay: (on: boolean) => void; clear: () => void; } export const useStaff = create()( persist( (set) => ({ token: null, username: null, livePay: false, setStaff: (token, username) => set({ token, username }), setLivePay: (livePay) => set({ livePay }), // Выход сотрудника гасит и боевой режим: следующий раз он включается осознанно. clear: () => set({ token: null, username: null, livePay: false }), }), { name: "pp-driver-staff" } ) );