import Vue from 'vue';
import Router from 'vue-router';

import HomePage from '../components/home/homePage.vue';

import TimeshareBuy from '../components/timeshare/buy/buyPage.vue';
import TimeshareSell from '../components/timeshare/sell/sellPage.vue';
import TimeshareFAQ from '../components/timeshare/faqPage.vue';
import TimeshareSearch from '../components/timeshare/buy/weekListPage.vue';

import Login from '../components/user/loginPage.vue';
import PrivateIndividual from '../components/user/registerPage.vue';
import Agency from '../components/user/registerAgencySection.vue';

import PropertySearch from '../components/property/propertySearchPage.vue';
import PropertyPage from '../components/property/propertyPage.vue';
import PropertyEdit from '../components/property/propertyeditPage.vue';
import PropertyList from '../components/property/propertyList.vue';
import PropertyTypeList from '../components/admin/property/propertyTypeList.vue';
import PropertyType from '../components/admin/property/propertyTypeEdit.vue';
import UserDefinedGroups from '../components/admin/property/userDefinedGroupsPage.vue';
import UserDefinedGroup from '../components/admin/property/userDefinedGroupPage.vue';

import AboutUs from '../components/about/aboutUsPage.vue';
import AboutTimeshare from '../components/about/aboutTimeshare.vue';

import Status from '../components/admin/status/statusPage.vue';
import timeshareAdminPage from '../components/admin/status/timeshareAdminPage.vue';
import tenderWeekAdminPage from '../components/admin/status/tenderWeekAdminPage.vue';
import userManagementPage from '../components/admin/status/userManagementPage.vue';
import changeLogPage from '../components/admin/status/changeLogPage.vue';
import UnitConfiguration from '../components/admin/unitConfiguration/unitConfigurationPage.vue';

import ResortPage from '../components/timeshare/resort/resortPage.vue';
import UnitPage from '../components/timeshare/resort/unitPage.vue';

import ContactUs from '../components/misc/contactUs.vue';
import PrivacyPolicy from '../components/misc/privacyPolicyPage.vue';

import MakeOffer from '../components/processFlow/makeOffer.vue';
import Offer from '../components/processFlow/offers.vue';

Vue.use(Router);

export default new Router({
  routes: [{
    path: '/',
    name: 'Home',
    component: HomePage,
  },
  {
    path: '/about/us',
    name: 'aboutus',
    component: AboutUs,
  },
  {
    path: '/about/timeshare',
    name: 'abouttimeshare',
    component: AboutTimeshare,
  },
  {
    path: '/timeshare/sell',
    name: 'TimeshareSell',
    component: TimeshareSell,
  },
  {
    path: '/timeshare/buy',
    name: 'TimeshareBuy',
    component: TimeshareBuy,
  },
  {
    path: '/timeshare/faq',
    name: 'TimeshareFAQ',
    component: TimeshareFAQ,
  },
  {
    path: '/user/login',
    name: 'Login',
    component: Login,
  },
  {
    path: '/user/register',
    name: 'PrivateIndividual',
    component: PrivateIndividual,
  },
  {
    path: '/user/registeragency',
    name: 'Agency',
    component: Agency,
  },
  {
    path: '/property/property/:id',
    name: 'PropertyPage',
    component: PropertyPage,
  },
  {
    path: '/property/:propertyType/search',
    name: 'PropertySearch',
    component: PropertySearch,
  },
  {
    path: '/property/search',
    name: 'PropertySearchTab',
    component: PropertySearch,
  },
  {
    path: '/property/:propType/:saleType',
    name: 'PropertyNew',
    component: PropertyEdit,
  },
  {
    path: '/property/edit/:id/:propType/:saleType',
    name: 'PropertyEdit',
    component: PropertyEdit,
  },
  {
    path: '/property/list/:propertyType/:user',
    name: 'PropertyList',
    component: PropertyList,
  },
  {
    path: '/propertyTypes/list',
    name: 'PropertyTypeList',
    component: PropertyTypeList,
  },
  {
    path: '/propertyType/new',
    name: 'PropertyTypeNew',
    component: PropertyType,
  },
  {
    path: '/propertyType/:id',
    name: 'PropertyTypeEdit',
    component: PropertyType,
  },
  {
    path: '/userDefinedGroups/list',
    name: 'UserDefinedGroupsList',
    component: UserDefinedGroups,
  },
  {
    path: '/userDefinedGroups/userDefinedGroup/:id',
    name: 'UserDefinedGroupEdit',
    component: UserDefinedGroup,
  },
  {
    path: '/userDefinedGroups/userDefinedGroup',
    name: 'UserDefinedGroupNew',
    component: UserDefinedGroup,
  },
  {
    path: '/status/list',
    name: 'StatusList',
    component: Status,
  },
  {
    path: '/status/timeshareAdmin',
    name: 'TimeshareAdmin',
    component: timeshareAdminPage,
  },
  {
    path: '/status/tenderWeekAdmin',
    name: 'TenderWeekAdmin',
    component: tenderWeekAdminPage,
  },
  {
    path: '/status/userManagementPage',
    name: 'userManagementPage',
    component: userManagementPage,
  },
  {
    path: '/status/changeLogPage',
    name: 'changeLogPage',
    component: changeLogPage,
  },
  {
    path: '/unitConfiguration/list',
    name: 'UnitConfiguration',
    component: UnitConfiguration,
  },
  {
    path: '/contactus',
    name: 'ContactUs',
    component: ContactUs,
  },
  {
    path: '/privacypolicy',
    name: 'PrivacyPolicy',
    component: PrivacyPolicy,
  },
  {
    path: '/resort/:resortCode',
    name: 'ResortPage',
    component: ResortPage,
    props: true,
  },
  {
    path: '/resort/:resortCode/:weekId',
    name: 'UnitPage',
    component: UnitPage,
    props: true,
  },
  {
    path: '/MakeOffer',
    name: 'MakeOffer',
    component: MakeOffer,
  },
  {
    path: '/Offers',
    name: 'Offers',
    component: Offer,
  },
  {
    path: '/timeshare/search',
    name: 'TimeshareSearch',
    component: TimeshareSearch,
  },
  ],
});
