NEW IDEA TODOS: 

  - trigger pag sucecss event from ordini tab and gen payment button in order detail

Minimal Viable Product:

- Msg and email queue. se è fuori orario il prop verrà notificato domani mattina

- tab locazioni

- GDPR Iubenda

- Translations

MVP Extras:

- admin annunci salvati: Da admin vedere indirizzo e interno nella visualizzazione annunci salvati di immobile
- Admin annuncio link: se admin, in annuncio, collegamento rapido per copiare risposta x email con dati di tipologia, persone e decorrenza annuncio
- info annunci/pack icon: Info Annunci/pack su navbar, icona con casetta con forse numeretti tipocontatore icone con dropdown con n annunci salvati n annunci sbloccati
- Extensions: integrare estensioni copiare dati x miogest e packs ecc
- Provincie options in maiuscolo

AFTER MVP:

- TODO migrazione app router https://nextjs.org/docs/pages/building-your-application/upgrading/app-router-migration#migrating-from-pages-to-app
- Proprietari: Pagina proprietari e submit annuncio e Sezione "I miei annunci" con lista degli annunci inseriti dall'utente
- Sezione "La mia locazione" con i dati della locazione attuale dell'utente
- prenotazione visita, con data e ora, e conferma da parte del proprietario, con notifica a entrambi, tab con propietari, giorni e orari di disponibilità per annunci che offrono il servizio
- Tutorials
- lettura contatori
- Ricezione e Rilascio immobili
- consigli presa e rilascio appartamento
- Third party apps: Etra, add to calendario, scarica calendario pdf
- Report andamento props: Generate a Report with selected user review, analytics and other data for the apartment owner
- Infoalloggi.AI: Pagina area riservata "Infoalloggi.it AI" o "la mia ricerca Infoalloggi" robe cosí in cui il sistema fa una ricerca personalizzata, elemento marketizzabile
- Document scan: Document scan for upload

- indirizzo autocomplete nomatim:

```
https://github.com/tomickigrzegorz/autocomplete
function nominatim(currentValue) {
  const api = `https://nominatim.openstreetmap.org/search?format=geojson&limit=5&q=${encodeURI(
    currentValue
  )}`;

  return new Promise((resolve) => {
    fetch(api)
      .then((response) => response.json())
      .then((data) => {
        resolve(data.features);
      })
      .catch((error) => {
        console.error(error);
      });
  });
}
```
