/**
 * router of sub app product
 * @author: xuqi<qi.xu@yoho.cn>
 * @date: 2016/05/06
 */

'use strict';

const router = require('express').Router(); // eslint-disable-line

const auth = require('../../doraemon/middleware/auth');
const rewrite = require('../../doraemon/middleware/rewrite');
const cors = require('../../doraemon/middleware/cors');
const cRoot = './controllers';

// 商品详情controller
const detail = require(`${cRoot}/detail`);
const newDetail = require(`${cRoot}/new-detail`);

// sale controller
const sale = require(`${cRoot}/sale`);

// outlet controller
const outlet = require(`${cRoot}/outlet`);

// recommend-for-you controller
const recommendForYou = require(`${cRoot}/recommend-for-you`);

// search controller
const search = require(`${cRoot}/search`);

// 品类|品牌|店铺 controller
const list = require(`${cRoot}/list`);

// 新品到着 controller
const news = require(`${cRoot}/new`);

// 热销排行榜
const newsale = require(`${cRoot}/newsale`);

// recom
const recom = require(`${cRoot}/recom`);

// 秒杀 controller
const seckill = require(`${cRoot}/seckill`);

// 秒杀商品详情controller
const seckillDetail = require(`${cRoot}/seckill-detail`);

const newShop = require(`${cRoot}/new-shop`);

// 套装
const bundle = require(`${cRoot}/bundle`);

// 全球购
const globalPro = require(`${cRoot}/global`);

// 找相似
const similar = require(`${cRoot}/similar`);

// seo推广
const chanpin = require(`${cRoot}/chanpin`);
const newRecommend = require(`${cRoot}/new-recommend`);

// routers

// /pro_136349_455445/HEARTSOFARMianMaShuJiaoXiuXianKuPS1684.html

// 因为正则匹配原因,秒杀详情页路由要放在普通详情页前面,待解决
router.get(/^\/seckill\/show_([\d]+)/, seckillDetail.index); // 秒杀商品详情页 SKN 进入
router.get(/^\/seckill\/pro_([\d]+)_([\d]+)/, seckillDetail.index); // 秒杀商品详情页进入
router.get(/^\/pro_([\d]+)_([\d]+)/, newDetail.indexRedirect); // 商品详情页
// /show_51047967.html
router.get(/^\/show_([\d]+)/, newDetail.indexRedirect); // 商品详情页 SKN 进入
router.get(/^\/(\d+)\.html/, newDetail.index); // 商品详情页 SKN 进入 SEO优化

router.get('/detail/sknData.json', newDetail.sknData); // 商品咨询,评价,店铺
router.get('/detail/intro/:productskn', detail.intro); // 商品内嵌页
router.get('/detail/preference', detail.preference); // 为你优选
router.get('/detail/consults', detail.consults); // 商品咨询页
router.get('/detail/consultform', auth, detail.consultform); // 商品咨询表单页
router.get('/detail/comments', detail.comments); // 商品评价
router.get('/detail/newinfo', detail.getUser, newDetail.indexData); // 商品详情页-异步数据 (优化)
router.post('/detail/consultsubmit', auth, detail.consultsubmit); // 商品咨询提交接口


router.get('/detail/coupon.json', detail.brandCoupon); // 品牌券
router.post('/detail/coupon/save.json', auth, detail.getCoupon); // 获得 品牌券


// 限定商品
router.get('/detail/limit', detail.limit);

router.get('/recom/maylike', recom.mayLike);// 你可能喜欢
router.get('/recom/maylikekids', recom.mayLikeKids); // 潮童你可能喜欢
router.get('/recom/maylikelife', recom.mayLikelife); // 创意生活你可能喜欢

router.get('/seckillDetail/seckillData/:productskn', seckillDetail.getSeckillData); // 秒杀数据接口

router.post('/detail/consultupvote', detail.consultUpvoteOrUseful); // 商品咨询提交接口
router.post('/detail/consultuseful', detail.consultUpvoteOrUseful); // 商品咨询提交接口

router.get('/sale', rewrite.channel, sale.indexRedirect);
router.get('/sale/((breakingYards)?(vip)?(discount(/detail)?)?)', rewrite.channel, sale.indexRedirect);

router.get('/:channel-sale/discount/detail(/:pathParams)?',
    rewrite.resolve,
    rewrite.resolvePathParams,
    sale.discountDetail);
router.get('/:channel-sale/breakingYards(/:pathParams)?',
    rewrite.resolve,
    rewrite.resolvePathParams,
    sale.breakingYards);
router.get('/:channel-sale/vip(/:pathParams)?',
    rewrite.resolve,
    rewrite.resolvePathParams,
    sale.vip);
router.get('/:channel-sale/discount', rewrite.resolve, sale.discount);
router.get('/:channel-sale(/)?(*)?', rewrite.resolve, sale.index);

router.get('/sale/discount', sale.discount);
router.get('/sale/discount/detail', sale.discountDetail);
router.get('/sale/breakingYards', sale.breakingYards);
router.get('/sale/vip', sale.vip);
router.get('/sale/discount/getTime', sale.getTime);
router.get('/sale/search', rewrite.resolvePathParamsAjax, sale.search);
router.get('/sale/filter', sale.filter);

router.get('/outlet', outlet.index);
router.get('/outlet/activity', outlet.activityDetail);
router.get('/outlet/activityTime', outlet.activityTime);
router.get('/outlet/activityinfo', outlet.activityList);

router.get('/recommend-for-you/userCenter', recommendForYou.userCenter);
router.get('/recommend-for-you/cart', recommendForYou.cart);

router.get('/seckill', seckill.index); // 秒杀列表页
router.get('/seckill/list', seckill.indexData);
router.post('/seckill/remind', auth, seckill.remind); // only app; 秒杀提醒
router.get('/seckill/get-product-list', seckill.getProductList); // 秒杀列表根据活动id获取商品列表

router.get('/search', search.index); // 搜索主页
router.get('/search/list', search.list); // 搜索落地页
router.get('/search/filter', search.filter); // filter
router.get('/search/fuzzyDatas', search.fuzzyDatas); // fuzzyDatas
router.get('/search/search', search.search); // ajax 请求商品数据

router.get('/search/so/:query.html', rewrite.sortParams, chanpin.keyword); // 推广落地页
router.get('/search/chanpin/:id.html', rewrite.sortParams, chanpin.keyId);
router.get('/search/chanpin/goods', chanpin.searchGoods); // 搜索的商品
router.get('/search/brand/goods', search.searchBrandGoods); // 搜索品牌下的商品
router.get('/search/shop/goods', search.searchShopGoods); // 搜索店铺下的商品

router.get('/list/global(/:pathParams)?', rewrite.resolvePathParams, globalPro.list); // 全球购路由重写 全球购列表页

router.get('/index/index', rewrite.resolvePathParams, list.listNew); // 列表新的 URL
router.get('/list/index', rewrite.resolvePathParams, list.listNew); // 旧 兼容 PC 的链接

router.get('/list(/:pathParams)?', rewrite.resolvePathParams, list.listNew); // 列表新的 URL
router.get('/search/category',
    cors,
    rewrite.resolvePathParamsAjax,
    list.getCategoryGoods);

// 品牌 | 店铺
router.get('/index/shopAppCookie', list.shopAppCookie);
router.get('/index/shopFav', list.shopFav);
router.get('/index/category', list.shopCategory);
router.get('/index/getBrandCouponsList', list.getBrandCouponsList);

router.get('/shop/goodslist',
    cors,
    rewrite.resolveShopPathParamsAjax,
    newShop.goodsListAjax); // 店铺商品列表异步查询
router.get('/shop/:shopParams.html',
    newShop.resolveShopParams,
    newShop.entry); // 新入口
router.get('/shop/:shopParams',
    rewrite.resolvePathParams,
    newShop.resolveShopParams,
    newShop.goodsList); // 店铺商品列表
router.get('/shop/:shopParams/:pathParams',
    rewrite.resolvePathParams,
    newShop.resolveShopParams,
    newShop.goodsList); // 店铺商品列表
router.get('/shop', newShop.redirect); // 老路由重定向前置处理

router.get('/index/brand', newShop.entry); // 旧的路由,走到新的 controller
router.get('/index/brandFav', newShop.brandFav);
router.get('/new/shop/hotlist', newShop.shopHotList);
router.get('/index/getShopCouponsList', cors, newShop.getShopCouponsList);
router.post('/index/userCoupon', cors, newShop.userCoupon);
router.get('/red-shop', newShop.redShop); // 红人店铺
router.get('/index/intro', list.shopIntro); // 店铺介绍
router.get('/index/license', list.shopLicense); // 营业执照信息
router.get('/opt/favoriteBrand', list.favoriteBrand); // 品牌|店铺收藏|取消收藏
router.get('/index/allBrand', newShop.allBrand); // 店铺全部品牌

// 新品到着
router.get('/new', rewrite.channel, news.newGoodsRedirect);

// 新品到着 SEO优化
router.get('/:channel-new(/:pathParams)?', rewrite.resolve, rewrite.resolvePathParams, news.newGoods);
router.get('/list/new', news.newGoods); // 兼容 PC 的链接
router.get('/new/selectNewSale', rewrite.resolvePathParamsAjax, news.selectNewSale);
router.get('/new/filter', rewrite.resolvePathParamsAjax, news.filter);
router.get('/newnew', news._newGoods); // TODO: repleace /new
router.get('/new/recommend-shop.json', news.recommendShop);
router.get('/new/goods.json', news.fetchNew);
router.get('/new/goods-filter', news.goodsFilter);
router.get('/new/shops', news.brands);

// 新品到着(blk)
router.get('/blknew', news.blkNewGoods);

router.get('/newsale/hotrank', newsale.index); // 热销排行榜
router.get('/newsale/selectHotrank', newsale.selectHotrank); // 热销排行榜

router.get('/bundle/detail', bundle.detail); // 套装详情页
router.post('/bundle/cart/add', bundle.addToCart); // 套装加入购物车

router.post('/opt/favoriteProduct', newDetail.favoriteProduct); // 商品收藏、取消收藏
router.get('/detail/limitHelp', newDetail.limitHelp);

router.get('/global/list', globalPro.redirect); // 全球购列表页
router.get('/global/search', rewrite.resolvePathParamsAjax, globalPro.search); // 全球购列表页搜索数据
router.get(/^\/global\/(\d+)\.html/, globalPro.detail); // 全球购店铺详情页
router.get('/global/gethtml', globalPro.gethtml); // 全球购商品信息

router.get('/similar', similar.index); // 找相似

router.get('/new-recommend/getRecommend', newRecommend.getRecommend); // 新为你优选

module.exports = router;