// Canal de diffusion global pour un nombre indéfini d'appareils en temps réel
const syncChannel = new BroadcastChannel('togola_gestion_sync_v12');
// Écouteur global multi-appareils (Illimité)
syncChannel.onmessage = function (event) {
if (!currentUser) return;
let data = event.data;
if (data && data.user === currentUser) {
loadUserData(currentUser);
showToast("🔄 Données synchronisées en temps réel (Appareil distant) !");
}
};
// Écouteur localStorage de secours pour la persistance inter-onglets/appareils
window.addEventListener('storage', function(e) {
if(!currentUser) return;
if(e.key === 'tg_cityweb_accounts_v12') {
loadAllAccounts();
loadUserData(currentUser);
}
});
function handleLogin() {
let user = document.getElementById('loginUser').value.trim().toLowerCase();
let pass = document.getElementById('loginPass').value.trim();
let found = accounts.find(a => a.user === user && a.pass === pass);
if(found) {
// Gestion SANS LIMITE (Indéfini) des appareils connectés
if(!found.devices) found.devices = [];
if(!found.devices.includes(currentDeviceId)) {
found.devices.push(currentDeviceId); // Ajout direct sans condition de quota
}
currentUser = user;
localStorage.setItem('tg_cityweb_accounts_v12', JSON.stringify(accounts));
localStorage.setItem('tg_cityweb_current_user_v12', currentUser);
loadUserData(currentUser);
document.getElementById('authScreen').style.display = 'none';
showToast("✅ Connexion réussie (Appareils illimités synchronisés) !");
} else {
showToast("Identifiant ou mot de passe incorrect.");
}
}
function saveUserData() {
if(!currentUser) return;
let accIndex = accounts.findIndex(a => a.user === currentUser);
if(accIndex !== -1) {
accounts[accIndex].config = config;
accounts[accIndex].stock = stockData;
accounts[accIndex].sales = salesHistory;
localStorage.setItem('tg_cityweb_accounts_v12', JSON.stringify(accounts));
// Diffusion instantanée à TOUS les appareils connectés (nombre indéfini)
syncChannel.postMessage({ user: currentUser, timestamp: Date.now() });
}
}