package tao_vegetable

import "git.rosy.net.cn/baseapi/utils"

const (
	AddStoreCategoryApi = "alibaba.wdk.sku.category.add"
)

const (
	GeneralMaxLimit = 200 // 大多数的API的批处理最大条数
)

const (
	ErrCodeSuccess                       = 0
	ErrCodeSysErr                        = 700     // 系统错误，按美团外卖技术支持的说法，可当成需重试的错误
	ErrCodeParameterFormatWrong          = 705     // 参数格式错误
	ErrCodeAccessLimited                 = 711     // 接口调用过于频繁，触发流控，请降低调用频率
	ErrCodeNoAppFood                     = 805     // 不存在此菜品
	ErrCodeNoSuchOrder                   = 806     // 不存在此订单
	ErrCodeOpFailed                      = 808     // 操作失败（如订单在操作时，状态已变更等情况）
	ErrCodeSkuCategoryNotExist           = "类目不存在" // 菜品分类不存在
	ErrCodeSkuCategoryExist              = "类目已存在" // 菜品分类已存在
	ErrCodeCanNotModifyStoreDeliveryInfo = 3018    // 商家已接入美团配送，不可修改门店配送相关信息
)

const (
	CreateItemTypeNewVegetable = 1                 // ( 商品类型（同字段sku_type）1:普通商品、2:加工半成品、3:加工成品、4:原材料、5:耗材；优先使用本字段)
	CreateIsOnline             = 1                 // 1是/0否上线
	CreateSkuStorageType       = 242               // 存储条件类型 241=常温,242=冷藏,243=冷冻,635=热链,636=室温,637=鲜活
	CreateSkuWeightFlagYes     = 1                 // 1称重商品
	CreateSkuWeightFlagNo      = 0                 // 0标品
	CreateShelfLife            = 7                 // 保质期7天
	CreateOfflineSaleFlag      = 0                 // 门店来控制本门店是否在app上让该商品可见，? 1可见? 0不可见
	CreateOnlineSaleFlag       = 1                 // 门店来控制本门店是否在app上让该商品可见，? 1可见? 0不可见
	UpdateTypeStoke            = 1                 // 1-全量/2-增量
	UpdateTypeStokeBillType    = 9194              // 外部单据类型，9001大润发 9002欧尚 9003三江 9005 文峰 9007美特好(后面会给个京西的 9194)
	CreateItemDeliveryStorage  = "常温"              // 常温、冷藏、冷冻
	CreateChannelType          = "txd"             // 渠道类型
	CreateChannelTypeKey       = "ONE_HOUR_STATUS" // 渠道属性key, 取值为"ONE_HOUR_STATUS" 代表小时达，value=0表示不可售, value=1表示可售；"WAVE_ARRIVE_STATUS" 代表波次达，value=0表示不可售,value=1表示可售     */
	CreateSkuBrandName         = "京西菜场"            // 品牌名称
	CreateSkuProducerPlace     = "中国"              // 产地,默认中国
	CreateSkuInventoryUnit     = "kg"              // 库存单位,所有商品默认为kg
	CreateSkuLeafStatus        = "A"               // A-正常、T-暂时停购、C-淘汰出清、R-清退、D-删除封挡
	CreateStorage              = "冷藏"              // 填常温、冷藏、冷冻、热链、鲜活
	CreateLabelStyleType       = "无价签"             // 保质期7天
	OrderDeliveryTypeTime      = 1                 // 定时配送
	OrderDeliveryTypeSelf      = 3                 // 用户自提
	OrderDeliveryTypeStore     = 2                 // 商家自配
	ChannelCome                = 31                // 3：饿了么 4：盒马&淘鲜达 18:大润发飞牛 19:欧尚外卖 20：商家自有渠道 31 ???
	IsAllowAppSale             = 1                 // 是否在app销售打开,默认1,0否
	NameMaxLength              = 60                // 最大名称长度
)

const (
	TaoVegetableChannelCode = "31" // 渠道编码：2 美团，3 饿了么，26 京东到家，31 翱象淘鲜达，32 翱象共享库存
)

const (
	ActivityTypeChannel  = "1" // 渠道活动
	ActivityTypeBiz      = "2" // 业务活动
	ActivityTypeMerchant = "3" // 商家erp活动
)

const MAXHandleCount = 20 // 批量处理一次最大数据量

// 订单状态通知
const (
	OrderStatusPayFinsh       = "PAID"     // 订单支付完成
	OrderStatusNew            = "ACCEPTED" // 商户接单
	OrderStatusPickedUp       = "PICKED"   // 拣货完成
	OrderStatusCallRider      = "PACKAGED" // 打包出库(呼叫骑手,骑手到店,骑手取货)
	OrderStatusDelivery       = "SHIPPING" // 配送中
	OrderStatusDeliveryOver   = "SIGN"     // 配送结束
	OrderStatusUserRejection  = "REFUSED"  // 用户拒收
	OrderStatusMerchantCancel = "REJECTED" // 商户取消订单
	OrderStatusSuccess        = "SUCCESS"  // 交易完成
	OrderStatusRefundClose    = "CLOSE"    // 订单取消
)

// 售后订单通知状态
const (
	OrderStatusApplyAfs  = "userApplyAfs"  // 用户申请售后
	OrderStatusCancelAfs = "userCancelAfs" // 用户取消售后
	// 业务上规定的是打包之后不能取消，但是如果配送超过了预计送达时间1-2小时，c端的取消按钮会自动打开，让用户操作取消，但是如果你没接这个接口，用户申请取消了，你这边没有响应那么就不会退钱给用户，就会造成客诉。为什么不接售中取消呢
	OrderStatusOnSaleCancel  = "userCancelOnSale"  // 用户售中取消
	OrderStatusRefundSuccess = "refundSuccess"     // 用户售后成功(退款成功)
	OrderStatusChange        = "orderStatusChange" // 订单状态变化
)

const (
	TaoDeliveryTypeFN    = "FENGNIAO" // 蜂鸟
	TaoDeliveryTypeMT    = "MEITUAN"  // 美团
	TaoDeliveryTypeDD    = "DADA"     // 达达
	TaoDeliveryTypeSF    = "SHUNFENG" // 顺丰
	TaoDeliveryTypeELM   = "ELEZB"    // 饿了么众包
	TaoDeliveryTypeSS    = "BINGEX"   // 闪送
	TaoDeliveryTypeSELF  = "SELF"     // 商家自送
	TaoDeliveryTypeOther = "OTHER"    // 其他运力
)

func IsErrCategoryExist(err error) (isExist bool) {
	return utils.IsErrMatch(err, ErrCodeSkuCategoryExist, nil)
}

func IsErrCategoryNotExist(err error) (isNotExist bool) {
	return utils.IsErrMatch(err, ErrCodeSkuCategoryNotExist, nil) ||
		utils.IsErrMatch(err, utils.Int2Str(ErrCodeParameterFormatWrong), []string{
			"门店内不存在该分类",
		})
}

func IsErrSkuNotExist(err error) (isExist bool) {
	return utils.IsErrMatch(err, utils.Int2Str(ErrCodeNoAppFood), nil)
}
