Fenice Api
Piani/FLOORS accesso alle informazioni dei singoli piano di un edificio/BUILD
I piano possono essere regolamentati in base a delle regole imposte dal responsabile

Informazioni su attributi o parametri:
id
integer
RO
Codice auto incrementale univoco fornito dal sistema.
codice
varchar(60)
Codice univoco assegnato dal cliente (non duplicabile).
descrizione
varchar(255)
Descrizione semplice.
site_id
integer
Relazione con tabella Sites. SITE_ID deve esistere per mantenere la relazione.
build_id
integer
Relazione con tabella BUILDS. BUILD_ID deve esistere per mantenere la relazione.
sended_at
timestamp
Rappresenta la Data e ora della modifica di una qualsiasi modifica al piano/Floor.
dwg_cliente
varchar(255)
Informazione ad uso funzionale.
dwg_fenice
varchar(255)
Informazione ad uso funzionale.
altezza
varchar(255)
Informazione ad uso funzionale.
ordine
integer
Ordine di visualizzazione come una pulsantiera di ascensore.
edificio_principale
varchar(255)
Informazione ad uso funzionale.
quota
varchar(255)
Informazione ad uso funzionale. Indica la quota rispetto al piano stradale.
piano_ferro
varchar(255)
Informazione ad uso funzionale. In alcune dinamiche il piano ferro (ove transitano altri veicoli) può essere diverso dal piano stradale.
extra_contratto
boolean
Indica se il dato è da considerare Extra Contratto.
codice_esterno
varchar(255)
Codice Esterno per allineare altre procedure del cliente.
note
text
Informazione ESTESA ad uso funzionale.
autore
varchar(255)
RO
Utente che ha registrato il record.
revisore
varchar(255)
RO
Ultimo utente che ha aggiornato il record.
attivo
boolean
Stato del dato, se false dato non utilizzato (come cancellato).
disattivato
varchar(255)
RO
Utente che ha disattivato il dato.
created_at
timestamp
RO
Data e ora di creazione del record.
updated_at
timestamp
RO
Data e ora dell'ultima modifica del record.
GET /personaldata/floors
Restituisce l'elenco dei Piani/Floors associati ad un progetto specifico individuato da `project_uuid`. Fornendo 'site_id' ritorna solo i FLOORS del padre SITE. Se omesso tutti i FLOORS del progetto.

Parameters

Parametri:
Richiesti:
Descrizione dei parametri:
Esempio:
project_uuid
obbligatorio
UUID del progetto.
active
opzionale
Indica se il dato è in stato attivo.
build_id
opzionale
Ritorna solo i floor del padre BUILD. Se omesso tutti i FLOOR del progetto.
site_id
opzionale
Associa il floor del padre SITE.

Responses

200 OK
Esempio di risposta (in JSON):
{
  "data": [
    {
      "id": 1,
      "codice": "ESERCITAZIONE",
      "descrizione": "ESERCITAZIONE",
      "indirizzo": "via ESERCITAZIONE",
      "tel_riferimento": " ",
      "cell_riferimento": " ",
      "note": " ",
      "autore": "root",
      "revisore": "root",
      "attivo": true,
      "disattivato": null,
      "extra_contratto": false,
      "codice_esterno": "ESERCITAZIONE"
    },
    {
      "id": 32,
      "others": "...."
    }
  ],
  "empty": false,
  "total": 32,
  "source": "floors",
  "timestamp": "2026-02-17 18:26:23 +0100"
}
401 Unauthorized
Esempio di risposta (in JSON):
{
  "error": "Unauthorized"
}
404 Bad Request
Esempio di risposta (in JSON):
{
  "error": "Bad request"
}
GET /personaldata/floor
Restituisce un singolo record di un sito specifico individuato da `floor_id` e `project_uuid`.

Parameters

Parametri:
Richiesti:
Descrizione dei parametri:
Esempio:
project_uuid
obbligatorio
UUID del progetto.
active
opzionale
Indica se il dato è in stato attivo.
floor_id
obbligatorio
ID del record richiesto.

Responses

200 OK
Esempio di risposta (in JSON):
{
  "data": {
    "id": 1,
    "codice": "ESERCITAZIONE",
    "descrizione": "ESERCITAZIONE",
    "indirizzo": "via ESERCITAZIONE",
    "tel_riferimento": " ",
    "cell_riferimento": " ",
    "note": " ",
    "autore": "root",
    "revisore": "root",
    "attivo": true,
    "disattivato": null,
    "extra_contratto": false,
    "codice_esterno": "ESERCITAZIONE"
  },
  "empty": false,
  "total": 1,
  "source": "floor",
  "timestamp": "2026-02-18 16:36:43 +0100"
}
401 Unauthorized
Esempio di risposta (in JSON):
{
  "error": "Unauthorized"
}
404 Bad Request
Esempio di risposta (in JSON):
{
  "error": "Bad request"
}
POST /personaldata/floor_update
Aggiorna le informazioni di un sito specifico individuato da `floor_id` e `project_uuid`.

Parameters

Parametri:
Richiesti:
Descrizione dei parametri:
Esempio:
project_uuid
obbligatorio
UUID del progetto.
active
opzionale
Indica se il dato è in stato attivo.
site_id
obbligatorio
Associa il floor del padre SITE.
build_id
obbligatorio
Associa il floor al padre BUILD.
Informazione su i Campi modificabili
codice:
Codice univoco assegnato dal cliente (non duplicabile).
descrizione:
Descrizione semplice.
site_id:
Relazione con tabella Sites. SITE_ID deve esistere per mantenere la relazione.
build_id:
Relazione con tabella BUILDS. BUILD_ID deve esistere per mantenere la relazione.
sended_at:
Rappresenta la Data e ora della modifica di una qualsiasi modifica al piano/Floor.
dwg_cliente:
Informazione ad uso funzionale.
dwg_fenice:
Informazione ad uso funzionale.
altezza:
Informazione ad uso funzionale.
ordine:
Ordine di visualizzazione come una pulsantiera di ascensore.
edificio_principale:
Informazione ad uso funzionale.
quota:
Informazione ad uso funzionale. Indica la quota rispetto al piano stradale.
piano_ferro:
Informazione ad uso funzionale. In alcune dinamiche il piano ferro (ove transitano altri veicoli) può essere diverso dal piano stradale.
extra_contratto:
Indica se il dato è da considerare Extra Contratto.
codice_esterno:
Codice Esterno per allineare altre procedure del cliente.
note:
Informazione ESTESA ad uso funzionale.
attivo:
Stato del dato, se false dato non utilizzato (come cancellato).

I campi sono opzionali e non verranno modificati se non indicati

Responses

200 OK
Esempio di risposta (in JSON):
{
  "updated": "descrizione: ESERCITAZIONE B2,extra_contratto: true,attivo: true",
  "source": "floor_update",
  "timestamp": "2026-02-17 16:53:44 +0100"
}
401 Unauthorized
Esempio di risposta (in JSON):
{
  "error": "Unauthorized"
}
404 Bad Request
Esempio di risposta (in JSON):
{
  "error": "Bad request"
}
GET /personaldata/floor_modified
Controlla se ci sono state modifiche sulle informazioni del piano, da una data in poi `modified_at`, `floor_id` e `project_uuid`.

Parameters

Parametri:
Richiesti:
Descrizione dei parametri:
Esempio:
project_uuid
obbligatorio
UUID del progetto.
floor_id
obbligatorio
ID del record richiesto.
modified_at
obbligatorio
Data di modifica in YYY-MM-DD o YYYY-MM-DDTHH:MM:SS.
assets
opzionale
Se true controlla anche i cambiamenti su asset (default false).

Responses

200 OK
Esempio di risposta (in JSON):
{
  "modified": true,
  "data_modified": {
    "floor": false,
    "rooms": true,
    "populates": false,
    "pop_graphics": true
  },
  "timestamp": "2026-09-03 13:16:37 +0200"
}

Il campo `data_modified` indica se ci sono stati cambiamenti sulle informazioni del piano, sui suoi stanze, sui suoi popolamenti e sui suoi grafici

401 Unauthorized
Esempio di risposta (in JSON):
{
  "error": "Unauthorized"
}
404 Bad Request
Esempio di risposta (in JSON):
{
  "error": "Bad request"
}
POST /personaldata/floor_new
Permette la creazione di un nuovo sito specifico individuato da `floor_id` e `project_uuid`.

Parameters

Parametri:
Richiesti:
Descrizione dei parametri:
Esempio:
project_uuid
obbligatorio
UUID del progetto.
build_id
obbligatorio
Ritorna solo i floor del padre BUILD. Se omesso tutti i FLOOR del progetto.
codice
obbligatorio
Assegna un codice alla stanza. Questo codice è poi diverso da quello rilevato da censore in populate.
descrizione
opzionale
Assegna una descrizione al piano.

Responses

200 OK
Esempio di risposta (in JSON):
{
  "floor_id": 1,
  "timestamp": "2026-02-17 16:53:44 +0100",
  "created": "creazione della Room con codice:Piano123 associata al BUILD_ID:1"
}
401 Unauthorized
Esempio di risposta (in JSON):
{
  "error": "Unauthorized"
}
404 Bad Request
Esempio di risposta (in JSON):
{
  "error": "Bad request"
}