/*
 * Generated code by Ampersand compiler
 * File:        $targetFilePath$
 * Template:    $templateFilePath$
 * Context:     $contextName$
 */

// Imports
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';
import { MenuItem } from 'primeng/api';
import { BackendService } from './backend.service';
// import { AppLayoutComponent } from '../layout/app.layout.component';
import { SharedModule } from '../shared/shared.module';
import { InterfaceRouteMap, INTERFACE_ROUTE_MAPPING_TOKEN } from '../config';
import { TabViewModule } from 'primeng/tabview';
import { TableModule } from 'primeng/table';
import { SpecOverviewLinkDirective } from '../ui/specification/spec-overview-link.directive';

$uis:{ifc|import { $ifc.ifcNamePascal$Component \} from './$ifc.ifcNameKebab$/$ifc.ifcNameKebab$.component';
}$
// Routes
const routes: Routes = [
  $uis:{ifc|{
    path: '$ifc.ifcNameKebab$$if(!ifc.isSessionInterface)$/:id$endif$',
    component: $ifc.ifcNamePascal$Component,
    title: '$ifc.ifcLabel$',
  \},
  }$
];

// Menu
export const menuItems: MenuItem[] = [
  {
    label: 'Project',
    items: [$uis:{ifc|$if(ifc.isSessionInterface)$

      {
        label: '$ifc.ifcLabel$',
        icon: 'pi pi-fw pi-bars',
        routerLink: ['/$ifc.ifcNameKebab$'],
      \},$endif$}$
    ],
  },
];

// Interface to route mapping
const INTERFACE_ROUTE_MAP: InterfaceRouteMap = {$uis:{ifc|
  $ifc.ifcName$: '/$ifc.ifcNameKebab$',}$
};

// Module
@NgModule({
  declarations: [$uis:{ifc|
    $ifc.ifcNamePascal$Component,}$
  ],
  exports: [$uis:{ifc|
    $ifc.ifcNamePascal$Component,}$
  ],
  imports: [
    CommonModule,
    SharedModule,
    RouterModule.forChild(routes),
    TabViewModule,
    TableModule,
    SpecOverviewLinkDirective,
  ],
  providers: [
    { provide: BackendService, useClass: BackendService },
    { provide: INTERFACE_ROUTE_MAPPING_TOKEN, useValue: INTERFACE_ROUTE_MAP },
  ],
})
export class ProjectModule {}
