import React from 'react';
import {IndexRoute, Route, IndexRedirect} from 'react-router';
import UserStore from 'trc-client-core/src/user/UserStore';
import CertifiedStaffList from 'react-router-proxy!trc-client-core/src/bodyAndPaint/CertifiedStaffList';
import DealershipDetailsView from 'react-router-proxy!trc-client-core/src/portal/DealershipDetailsView';
import DefaultHandler from 'react-router-proxy!trc-client-core/src/global/DefaultHandler';
import EvaluationForm from 'react-router-proxy!trc-client-core/src/learningPlan/EvaluationForm';
import NationalStaffList from 'react-router-proxy!trc-client-core/src/bodyAndPaint/NationalStaffList';
import OverEnrolledSoView from 'react-router-proxy!trc-client-core/src/admin/OverEnrolledSoView';
import OverEnrolledView from 'react-router-proxy!trc-client-core/src/admin/OverEnrolledView';
import PortalHandler from 'react-router-proxy!trc-client-core/src/portal/PortalHandler';
import PortalView from 'react-router-proxy!trc-client-core/src/portal/PortalView';
import RequiredRoleEdit from 'react-router-proxy!trc-client-core/src/requiredRoles/RequiredRoleEdit';
import RequiredRolesAdminHandler from 'react-router-proxy!trc-client-core/src/requiredRoles/RequiredRolesAdminHandler';
import RequiredRolesAdminView from 'react-router-proxy!trc-client-core/src/requiredRoles/RequiredRolesAdminView';
import RequiredRolesPortalView from 'react-router-proxy!trc-client-core/src/requiredRoles/RequiredRolesPortalView';
import RequiredRolesQAReport from 'react-router-proxy!trc-client-core/src/requiredRoles/RequiredRolesQAReport';
import RequiredRolesReport from 'react-router-proxy!trc-client-core/src/requiredRoles/RequiredRolesReport';
import RequiredRoleView from 'react-router-proxy!trc-client-core/src/requiredRoles/RequiredRoleView';
import TrainingActivitySummary from 'react-router-proxy!trc-client-core/src/portal/TrainingActivitySummary';

import PortalDashboardView from 'react-router-proxy!trc-client-core/src/portal/PortalDashboardView';
import PortalProfileView from 'react-router-proxy!trc-client-core/src/portal/PortalProfileView';
import PortalTrainingHistory from 'react-router-proxy!trc-client-core/src/portal/PortalTrainingHistory';
import CourseActivityModal from 'react-router-proxy!trc-client-core/src/course/CourseActivityModal';


import LearningPlanRoutes from 'trc-client-core/src/learningPlan/LearningPlanRoutes';

function CourseActivity(props) {
    return <CourseActivityModal {...props.params}/>
}

export default (
    <Route path="portal" component={PortalHandler}>
        {LearningPlanRoutes}
        <Route path="body_and_paint_national_staff_list" component={NationalStaffList} />
        <Route path="certified_staff" component={CertifiedStaffList} />
        <Route path="dealership" component={DealershipDetailsView} />
        <Route path="dealership/required_roles" component={RequiredRolesPortalView} />
        <Route path="Evaluation" component={EvaluationForm}/>
        <Route path="over_enrolled_courses" component={OverEnrolledView}/>
        <Route path="over_enrolled_courses/:soId" component={OverEnrolledSoView}/>
        <Route path="required-roles" component={RequiredRolesAdminHandler}>
            <IndexRoute component={RequiredRolesAdminView} />
            <Route path="report" component={RequiredRolesReport} />
            <Route path="qareport" component={RequiredRolesQAReport} />
            <Route path="new" component={RequiredRoleEdit} />
            <Route path=":roleId" component={DefaultHandler}>
                <Route path="edit" component={RequiredRoleEdit} />
                <IndexRoute component={RequiredRoleView}></IndexRoute>
            </Route>
        </Route>
        <Route path="training_activity_summary" component={TrainingActivitySummary} />
        <Route path=":participantId/course-activity/:courseCode" component={CourseActivity}/>
        <Route path=":participantId" component={PortalView}>
            <IndexRoute component={PortalDashboardView} />
            <Route path="profile" component={PortalProfileView}/>
            <Route path="training-history" component={PortalTrainingHistory}/>
        </Route>
        <IndexRedirect to={`/portal/${UserStore.get('participantId') || 'admin'}`} />
    </Route>
);
