Korjaa laitetilan poisto: siivoa viittaukset ennen poistoa

- dbDeleteLaitetila nollaa devices.laitetila_id, devices.site_id
  ja ipam.site_id ennen laitetilan poistoa
- API: parempi virhekäsittely (\Throwable), logi, tyhjä ID tarkistus
- Tiedostojen poisto: @-suppression ja GLOB_BRACE hidden-tiedostoille

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-12 00:59:03 +02:00
parent 8e9fa76f9c
commit 663c37c7a7
2 changed files with 16 additions and 4 deletions

4
db.php
View File

@@ -1984,6 +1984,10 @@ function dbSaveLaitetila(string $companyId, array $tila): string {
function dbDeleteLaitetila(string $laitetilaId): ?array {
$tila = _dbFetchOne("SELECT id, company_id FROM laitetilat WHERE id = ?", [$laitetilaId]);
if ($tila) {
// Nollaa viittaukset laitteissa ja IPAM:ssa
_dbExecute("UPDATE devices SET laitetila_id = NULL WHERE laitetila_id = ?", [$laitetilaId]);
_dbExecute("UPDATE devices SET site_id = NULL WHERE site_id = ?", [$laitetilaId]);
_dbExecute("UPDATE ipam SET site_id = NULL WHERE site_id = ?", [$laitetilaId]);
_dbExecute("DELETE FROM laitetilat WHERE id = ?", [$laitetilaId]); // CASCADE poistaa tiedostot
}
return $tila;