import webpack from 'webpack'
import {
  DevServerPort,
  WebSocketURL,
  NuxtPort,
  NuxtHost,
  isProduction,
  // arpa
  VerityUserGroupId,
  VerityBusinessCategoryId,
  VerityStockAreaId,
  PanatechUserGroupId,
  PanatechBusinessCategoryId,
  PanatechStockAreaId
} from './server/_env'
import { serverMiddleware } from './server/index'
import { rs } from './server/plugins/resHeader'

const serverMiddlewareArray = []
if (isProduction) serverMiddlewareArray.push(serverMiddleware)
serverMiddlewareArray.push(rs)
export default {
  // Global page headers (https://go.nuxtjs.dev/config-head)
  head: {
    title: 'آسان سرویس',
    htmlAttrs: {
      lang: 'fa'
    },
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { name: 'theme-color', content: '#065495' },
      { name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent' },
      {
        hid: 'description',
        name: 'description',
        content:
          'آسان سرویس یکی از بزرگترین و فعالترین ارائه دهنده خدمات پس از فروش محصولات الکترونیکی به مدد شبکه گسترده و منسجم خدمات پس از فروش خود توانسته پاسخگوی مشتریان فهیم و گرانقدر باشد.'
      }
    ],
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/assets/img/favicon.png' },
      { rel: 'stylesheet', type: 'text/css', href: '/assets/css/bootstrap-grid.css' },
      { rel: 'stylesheet', type: 'text/css', href: '/assets/css/reset-css.css' },
      { rel: 'stylesheet', type: 'text/css', href: '/assets/css/fontawesome/css/all.min.css' }
    ],
    script: [{ src: '/CustomSW.js', deafer: true, body: true }]
  },
  loading: false,
  pageTransition: 'page',
  // Global CSS (https://go.nuxtjs.dev/config-css)
  css: ['element-ui/lib/theme-chalk/index.css', '~/sass/main.scss'],
  // Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins)
  plugins: [
    '@/plugins/element-ui',
    '@/plugins/ckEditor.client',
    '@/plugins/gsap.client',
    '@/plugins/core-ui.client',
    '@/plugins/datePicker.client',
    '@/plugins/ATextSplitterVuePlugin.client',
    '@/plugins/ArpaError.client',
    '@/plugins/jDate'
  ],

  // Auto import components (https://go.nuxtjs.dev/config-components)
  components: [
    {
      path: '~/components',
      pathPrefix: false,
    },
  ],

  // Modules for dev and build (recommended) (https://go.nuxtjs.dev/config-modules)
  buildModules: ['@nuxtjs/pwa'],

  // Modules (https://go.nuxtjs.dev/config-modules)
  modules: [
    // https://go.nuxtjs.dev/axios
    '@nuxtjs/axios',
    '@nuxtjs/auth-next',
    '~/modules/WebSocketServer.js',
    'nuxt-leaflet'
  ],
  pwa: {
    icon: {
      fileName: 'bigIcon.png'
    },
    manifest: {
      name: 'خدمات گارانتی آسان سرویس',
      short_name: 'AsanService App',
      description: false,
      lang: 'fa',
      useWebmanifestExtension: false,
      start_url: '/account'
    },
    meta: {
      nativeUI: true,
      mobileAppIOS: true,
      name: 'اسان سرویس',
      theme_color: '#065495'
    },
    workbox: {
      cleanupOutdatedCaches: true
    }
  },
  // Axios module configuration (https://go.nuxtjs.dev/config-axios)
  axios: {
    baseURL: `http://127.0.0.1:${NuxtPort}`,
    proxy: true
  },
  proxy: {
    '/api': { target: `http://127.0.0.1:${isProduction ? NuxtPort : DevServerPort}`  }
  },
  // Build Configuration (https://go.nuxtjs.dev/config-build)
  build: {
    transpile: [/^element-ui/],
    plugins: [
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'window.jQuery': 'jquery'
      })
    ],
    splitChunks: {
      layouts: true
    }
  },
  watchers: {
    chokidar: {
      ignored: /(server)/
    },
    webpack: {
      ignored: /(server)/
    }
  },
  router: {
    linkActiveClass: 'active'
  },
  server: {
    host: NuxtHost,
    port: NuxtPort
  },
  serverMiddleware: serverMiddlewareArray,
  auth: {
    strategies: {
      local: {
        token: {
          property: 'token',
          required: true,
          type: ''
        },
        user: {
          property: 'user',
          autoFetch: true
        },
        endpoints: {
          login: { url: '/api/auth/login', method: 'post' },
          logout: { url: '/api/auth/logout', method: 'post' },
          user: { url: '/api/auth/user', method: 'get' }
        }
      }
    },
    redirect: false
  },
  publicRuntimeConfig: {
    WebSocketURL: WebSocketURL(),
    // verity
    VerityUserGroupId,
    VerityBusinessCategoryId,
    VerityStockAreaId,
    // panatech
    PanatechUserGroupId,
    PanatechBusinessCategoryId,
    PanatechStockAreaId,
    // footer variables
    copyrightName: 'Danak Corporation',
    copyrightURL: 'https://danakcorp.com/fa',
    whatsApp: '',
    instagram: '',
    aparat: '',
    supportTel: '021-67341',
    supportEmail: 'info@asan-service.com',
    andoridAppURL: '',
    // contact page variables
    address: 'تهران، میدان ولیعصر، خیابان نجات اللهی، خیابان جعفر شهری (سپند)، پلاک ۳۶، طبقه تهران، میدان ولیعصر، خیابان نجات اللهی، خیابان جعفر شهری (سپند)، ساختمان ۳۲، پلاک ۲۰، طبقه ۵ واحد ۱۱',
    contactTel: '021-67341',
    contactEmail: 'info@asan-service.com',
    // post receipt info (for asan service only)
    recieverName: 'شرکت آسان سرویس (تهران)',
    recieverAddress: 'تهران، میدان ولیعصر، خیابان نجات اللهی، خیابان جعفر شهری (سپند)، پلاک ۳۶، طبقه تهران، میدان ولیعصر، خیابان نجات اللهی، خیابان جعفر شهری (سپند)، ساختمان ۳۲، پلاک ۲۰، طبقه ۵ واحد ۱۱',
    recieverPostalCode: '1598993733',
    recieverPhone: '02167341',
    complaint:"با سلام و احترام. ضمن خوش آمدگویی به شما مشتری گرامی به آگاهی می‌رساند امکان ثبت شکایات شما در سامانه رسیدگی به شکایات شرکت آسان سرویس فراهم است. شما عزیزان می‌توانید شکایت خود را در آن ثبت نمائید. این واحد وظیفه پاسخگویی و رسیدگی به شکایات را بر عهده دارد. چنانچه از نحوه ارائه خدمات در هریک از شعب و یا نمایندگی‌های داریا همراه در سطح کشور، در زمینه‌های نقض قوانین، کوتاهی یا عدم انجام وظیفه، اطاله رسیدگی، عدم پاسخگویی، یا ضعف در ارائه خدمات، شکایتی داشته و شخصاَ ذینفع آن بوده و از شرکت آسان سرویس درخواست رسیدگی دارید می‌توانید شکایت خود را در این سامانه ثبت نموده تا وفق مقررات به آن رسیدگی شده و پاسخ لازم ارائه گردد.",
    survey:"با سلام و احترام. ضمن خوش آمدگویی به شما مشتری گرامی به آگاهی می‌رساند امکان ثبت نظر شما در سامانه  نظرسنجی شرکت آسان سرویس فراهم است. شما عزیزان می‌توانید نظر خود را درباره خدمات ما در این سامانه ثبت کنید .",
    // Asan market
    apiAsanMarket:"https://api-asanmarket.iran.liara.run"
  },
  privateRuntimeConfig: {}
}
