import Vue from 'vue'
import Vuex from 'vuex'

import TimeshareModule from './modules/timeshare/timeshare'
import UsersModule from './modules/users'
import StatusModule from './modules/timeshare/status'
import UnitConfigurationModule from './modules/timeshare/unitConfiguration'
import RegionModule from './modules/timeshare/region'
import SearchTabModule from './modules/searchTab'
import ResortModule from './modules/timeshare/resort'
import PropertyModule from './modules/property/property'
import WeekModule from './modules/timeshare/week'
import PropertyAdminModule from './modules/property/propertyAdmin'
import PropertyList from './modules/property/propertyLists'
import PropertyTypes from './modules/property/propertyTypes'
import ContactUsSources from './modules/communication/contactUsSources'
import Register from './modules/user/register'
import WeekList from './modules/timeshare/weekList'
import MyWeeks from './modules/timeshare/myWeeks'
import Bid from './modules/processFlow/bid'
import Authentication from './modules/user/authentication'
import PropertySearch from './modules/property/propertySearch'
import SearchLog from './modules/logs/searchLog'
import Template from './modules/communication/template'
import Info from './modules/communication/info'
import PropertyEdit from './modules/property/propertyEdit'
import Carousel from './modules/misc/carousel'
import Individual from './modules/user/individual'
import Alert from './modules/misc/alert'
import TenderWeek from './modules/timeshare/tenderWeeks'
import PaymentModule from './modules/financial/payment'
import CampaignModule from './modules/marketing/campaigns'
import CampaignItemModule from './modules/marketing/campaignItems'
import PlaceHolderFormat from './modules/misc/placeHolderFormat'
import Bank from './modules/user/bank'
import bank from './modules/user/bank'
import Fees from './modules/financial/fees'
import TermsConditions from './modules/misc/termsConditions'
import Roles from './modules/user/role'
import NonRegIndividuals from './modules/user/nonRegIndividual'

Vue.use(Vuex)
    /* eslint no-param-reassign: ["error", { "props": false }] */
export default new Vuex.Store({
    modules: {
        myWeeks: MyWeeks,
        timeshare: TimeshareModule,
        users: UsersModule,
        status: StatusModule,
        unitConfiguration: UnitConfigurationModule,
        region: RegionModule,
        searchTab: SearchTabModule,
        resort: ResortModule,
        property: PropertyModule,
        week: WeekModule,
        propertyAdmin: PropertyAdminModule,
        propertyList: PropertyList,
        propertyTypes: PropertyTypes,
        contactUsSources: ContactUsSources,
        register: Register,
        weekList: WeekList,
        bid: Bid,
        authentication: Authentication,
        propertySearch: PropertySearch,
        searchLog: SearchLog,
        template: Template,
        info: Info,
        propertyEdit: PropertyEdit,
        carousel: Carousel,
        individual: Individual,
        alert: Alert,
        tenderWeek: TenderWeek,
        payment: PaymentModule,
        campaign: CampaignModule,
        campaignItem: CampaignItemModule,
        placeHolderFormat: PlaceHolderFormat,
        fees: Fees,
        termsConditions: TermsConditions,
        bank: bank,
        role: Roles,
        nonRegIndividual: NonRegIndividuals,
    },
})