import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { AdminComponent } from './containers/admin.component';
import { InstanceListComponent } from './containers/instance/instance-list.component';
import { DatabaseListComponent } from './containers/database/database-list.component';
import { NewDatabaseComponent } from './containers/database/new-database.component';
import { EditDatabaseComponent } from './containers/database/edit-database.component';
import { SurveyComponent } from './containers/survey/survey.component';
import { SurveyListComponent } from './containers/survey/survey-list.component';
import { NewSurveyComponent } from './containers/survey/new-survey.component';
import { EditSurveyComponent } from './containers/survey/edit-survey.component';
import { SettingsComponent } from './containers/settings/settings.component';

const routes: Routes = [
    { 
        path: 'admin', component: AdminComponent, children: [
            { path: '', redirectTo: 'instance-list', pathMatch: 'full' },
            { path: 'instance-list', component: InstanceListComponent },
            { 
                path: 'survey', component: SurveyComponent, children: [
                    { path: '', redirectTo: 'database-list', pathMatch: 'full' },
                    { path: 'database-list', component: DatabaseListComponent },
                    { path: 'survey-list', component: SurveyListComponent }
                ]
            },
            { path: 'new-database', component: NewDatabaseComponent },
            { path: 'edit-database/:id', component: EditDatabaseComponent },
            { path: 'new-survey', component: NewSurveyComponent },
            { path: 'edit-survey/:name', component: EditSurveyComponent },
            { path: 'settings', component: SettingsComponent },
            { path: 'settings/:select', component: SettingsComponent }
        ]
    }
];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class AdminRoutingModule { }

export const routedComponents = [
    AdminComponent,
    InstanceListComponent,
    SurveyComponent,
    SurveyListComponent,
    NewSurveyComponent,
    EditSurveyComponent,
    DatabaseListComponent,
    NewDatabaseComponent,
    EditDatabaseComponent,
    SettingsComponent
];