import { Authority } from '@/shared/security/authority';
const Entities = () => import('@/entities/entities.vue');

const AuditLog = () => import('@/entities/audit-log/audit-log.vue');
const AuditLogUpdate = () => import('@/entities/audit-log/audit-log-update.vue');
const AuditLogDetails = () => import('@/entities/audit-log/audit-log-details.vue');

const Disponibilita = () => import('@/entities/disponibilita/disponibilita.vue');
const DisponibilitaUpdate = () => import('@/entities/disponibilita/disponibilita-update.vue');
const DisponibilitaDetails = () => import('@/entities/disponibilita/disponibilita-details.vue');

const Notifica = () => import('@/entities/notifica/notifica.vue');
const NotificaUpdate = () => import('@/entities/notifica/notifica-update.vue');
const NotificaDetails = () => import('@/entities/notifica/notifica-details.vue');

const Prenotazione = () => import('@/entities/prenotazione/prenotazione.vue');
const PrenotazioneUpdate = () => import('@/entities/prenotazione/prenotazione-update.vue');
const PrenotazioneDetails = () => import('@/entities/prenotazione/prenotazione-details.vue');
const PrenotazioneNuova = () => import('@/entities/prenotazione/prenotazione-form-user.vue');

const Conferma = () => import('@/entities/conferma/conferma.vue');
const ConfermaUpdate = () => import('@/entities/conferma/conferma-update.vue');
const ConfermaDetails = () => import('@/entities/conferma/conferma-details.vue');

const Struttura = () => import('@/entities/struttura/struttura.vue');
const StrutturaUpdate = () => import('@/entities/struttura/struttura-update.vue');
const StrutturaDetails = () => import('@/entities/struttura/struttura-details.vue');
const StrutturaDisponibilitaConfig = () => import('@/entities/struttura/struttura-disponibilita-config.vue');

const UtenteApp = () => import('@/entities/utente-app/utente-app.vue');
const UtenteAppUpdate = () => import('@/entities/utente-app/utente-app-update.vue');
const UtenteAppDetails = () => import('@/entities/utente-app/utente-app-details.vue');

const Liberatoria = () => import('@/entities/liberatoria/liberatoria.vue');
const LiberatoriaUpdate = () => import('@/entities/liberatoria/liberatoria-update.vue');
const LiberatoriaDetails = () => import('@/entities/liberatoria/liberatoria-details.vue');

const ModelloLiberatoria = () => import('@/entities/modello-liberatoria/modello-liberatoria.vue');
const ModelloLiberatoriaUpdate = () => import('@/entities/modello-liberatoria/modello-liberatoria-update.vue');
const ModelloLiberatoriaDetails = () => import('@/entities/modello-liberatoria/modello-liberatoria-details.vue');

const Messaggio = () => import('@/entities/messaggio/messaggio.vue');
const MessaggioUpdate = () => import('@/entities/messaggio/messaggio-update.vue');
const MessaggioDetails = () => import('@/entities/messaggio/messaggio-details.vue');

// jhipster-needle-add-entity-to-router-import - JHipster will import entities to the router here

export default {
  path: '/',
  component: Entities,
  children: [
    {
      path: 'audit-log',
      name: 'AuditLog',
      component: AuditLog,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'audit-log/new',
      name: 'AuditLogCreate',
      component: AuditLogUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'audit-log/:auditLogId/edit',
      name: 'AuditLogEdit',
      component: AuditLogUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'audit-log/:auditLogId/view',
      name: 'AuditLogView',
      component: AuditLogDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'disponibilita',
      name: 'Disponibilita',
      component: Disponibilita,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'disponibilita/new',
      name: 'DisponibilitaCreate',
      component: DisponibilitaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'disponibilita/:disponibilitaId/edit',
      name: 'DisponibilitaEdit',
      component: DisponibilitaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'disponibilita/:disponibilitaId/view',
      name: 'DisponibilitaView',
      component: DisponibilitaDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'notifica',
      name: 'Notifica',
      component: Notifica,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'notifica/new',
      name: 'NotificaCreate',
      component: NotificaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'notifica/:notificaId/edit',
      name: 'NotificaEdit',
      component: NotificaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'notifica/:notificaId/view',
      name: 'NotificaView',
      component: NotificaDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'prenotazione',
      name: 'Prenotazione',
      component: Prenotazione,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'prenotazione/new',
      name: 'PrenotazioneCreate',
      component: PrenotazioneUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'prenotazione/:prenotazioneId/edit',
      name: 'PrenotazioneEdit',
      component: PrenotazioneUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'prenotazione/:prenotazioneId/view',
      name: 'PrenotazioneView',
      component: PrenotazioneDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'prenotazione/nuova',
      name: 'PrenotazioneNuova',
      component: PrenotazioneNuova,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'conferma',
      name: 'Conferma',
      component: Conferma,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'conferma/new',
      name: 'ConfermaCreate',
      component: ConfermaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'conferma/:confermaId/edit',
      name: 'ConfermaEdit',
      component: ConfermaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'conferma/:confermaId/view',
      name: 'ConfermaView',
      component: ConfermaDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'struttura',
      name: 'Struttura',
      component: Struttura,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'struttura/new',
      name: 'StrutturaCreate',
      component: StrutturaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'struttura/:strutturaId/edit',
      name: 'StrutturaEdit',
      component: StrutturaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'struttura/:strutturaId/view',
      name: 'StrutturaView',
      component: StrutturaDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'struttura/:strutturaId/disponibilita',
      name: 'StrutturaDisponibilitaConfig',
      component: StrutturaDisponibilitaConfig,
      meta: { authorities: [Authority.ADMIN, Authority.INCARICATO] },
    },
    {
      path: 'utente-app',
      name: 'UtenteApp',
      component: UtenteApp,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'utente-app/new',
      name: 'UtenteAppCreate',
      component: UtenteAppUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'utente-app/:utenteAppId/edit',
      name: 'UtenteAppEdit',
      component: UtenteAppUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'utente-app/:utenteAppId/view',
      name: 'UtenteAppView',
      component: UtenteAppDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'liberatoria',
      name: 'Liberatoria',
      component: Liberatoria,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'liberatoria/new',
      name: 'LiberatoriaCreate',
      component: LiberatoriaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'liberatoria/:liberatoriaId/edit',
      name: 'LiberatoriaEdit',
      component: LiberatoriaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'liberatoria/:liberatoriaId/view',
      name: 'LiberatoriaView',
      component: LiberatoriaDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'modello-liberatoria',
      name: 'ModelloLiberatoria',
      component: ModelloLiberatoria,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'modello-liberatoria/new',
      name: 'ModelloLiberatoriaCreate',
      component: ModelloLiberatoriaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'modello-liberatoria/:modelloLiberatoriaId/edit',
      name: 'ModelloLiberatoriaEdit',
      component: ModelloLiberatoriaUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'modello-liberatoria/:modelloLiberatoriaId/view',
      name: 'ModelloLiberatoriaView',
      component: ModelloLiberatoriaDetails,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'messaggio',
      name: 'Messaggio',
      component: Messaggio,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'messaggio/new',
      name: 'MessaggioCreate',
      component: MessaggioUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'messaggio/:messaggioId/edit',
      name: 'MessaggioEdit',
      component: MessaggioUpdate,
      meta: { authorities: [Authority.USER] },
    },
    {
      path: 'messaggio/:messaggioId/view',
      name: 'MessaggioView',
      component: MessaggioDetails,
      meta: { authorities: [Authority.USER] },
    },
    // jhipster-needle-add-entity-to-router - JHipster will add entities to the router here
  ],
};
