From ab03eb7e61b191345898e7fe72a28bc3d0026ea8 Mon Sep 17 00:00:00 2001 From: Jukka Lampikoski Date: Tue, 10 Mar 2026 11:25:36 +0200 Subject: [PATCH] Fix data loss: remove data files from git, add gitignore, auto-recover - Remove data/companies.json and data/companies/cuitunet/config.json from git (tracked data files get overwritten on every deploy, causing data loss) - Add data/companies/*/ and data/tickets.json to .gitignore - Migration now auto-recovers companies.json and config.json if missing (handles case where git clean removes untracked data files) Co-Authored-By: Claude Opus 4.6 --- .gitignore | 3 +++ api.php | 20 ++++++++++++++++++++ data/companies.json | 8 -------- data/companies/cuitunet/config.json | 4 ---- 4 files changed, 23 insertions(+), 12 deletions(-) delete mode 100644 data/companies.json delete mode 100644 data/companies/cuitunet/config.json diff --git a/.gitignore b/.gitignore index 6483aa2..1dc4932 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,10 @@ data/changelog.json data/archive.json data/leads.json data/config.json +data/tickets.json data/reset_tokens.json data/login_attempts.json data/backups/ data/files/ +data/companies.json +data/companies/*/ diff --git a/api.php b/api.php index 6b1158d..3abf78c 100644 --- a/api.php +++ b/api.php @@ -138,6 +138,26 @@ function saveCompanyConfig(array $config): void { function runMigration(): void { $companiesDir = DATA_DIR . '/companies'; + // Varmista companies.json olemassaolo (voi kadota git deploy:ssa) + if (!file_exists(COMPANIES_FILE)) { + // Jos cuitunet-hakemisto on olemassa, se on jo migrattu aiemmin → luo pelkkä companies.json + if (is_dir($companiesDir . '/cuitunet')) { + $companies = [[ + 'id' => 'cuitunet', + 'nimi' => 'CuituNet', + 'luotu' => date('Y-m-d H:i:s'), + 'aktiivinen' => true, + ]]; + file_put_contents(COMPANIES_FILE, json_encode($companies, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); + } + } + + // Varmista yrityksen config.json (voi kadota git deploy:ssa) + $cuitunetConfig = $companiesDir . '/cuitunet/config.json'; + if (is_dir($companiesDir . '/cuitunet') && !file_exists($cuitunetConfig)) { + file_put_contents($cuitunetConfig, json_encode(['mailboxes' => [], 'ticket_rules' => []], JSON_PRETTY_PRINT)); + } + // Tarkista onko vanha data olemassa juuressa (pre-multitenant) $oldCustomers = DATA_DIR . '/customers.json'; if (!file_exists($oldCustomers)) return; // Ei vanhaa dataa → ei migraatiota diff --git a/data/companies.json b/data/companies.json deleted file mode 100644 index f2d2905..0000000 --- a/data/companies.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "id": "cuitunet", - "nimi": "CuituNet", - "luotu": "2026-03-10 08:58:43", - "aktiivinen": true - } -] \ No newline at end of file diff --git a/data/companies/cuitunet/config.json b/data/companies/cuitunet/config.json deleted file mode 100644 index d44ded5..0000000 --- a/data/companies/cuitunet/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "mailboxes": [], - "ticket_rules": [] -} \ No newline at end of file