#ifndef BASE_DEFINE_H
#define BASE_DEFINE_H

#define IN
#define OUT

/***********************************
           POS相关预定义变量
 ***********************************/
//订单状态对照表
#define ORDERSTATUS_NEW                   1001          //新生成
#define ORDERSTATUS_CONFIRMED             1002          //已确定
#define ORDERSTATUS_CANCELED              1003          //已取消
#define ORDERSTATUS_SHIPPING              1004          //配送中
//#define ORDERSTATUS_WAITE_SHIPPING        1005          //外卖-等待配送
#define ORDERSTATUS_COMPLETE              1006          //已完成(已核销)
#define ORDERSTATUS_REFUND_FULL           1020          //申请全额退款
#define ORDERSTATUS_REFUND_PART           1021          //申请部分退款
#define ORDERSTATUS_REFUND_COMPLETE       1022          //退款完成
//#define ORDERSTATUS_LOCK                  1100          //外卖-已锁定

//请求类型对照表
#define REQUEST_TYPE_INIT                 1000          //初始化 
#define REQUEST_TYPE_NEWORDER_PUSH        1001          //新订单推送 
#define REQUEST_TYPE_STATUS_CHANGE        1002          //订单状态变更通知 
#define REQUEST_TYPE_REFUND               1003          //订单退款 
#define REQUEST_TYPE_GOODS_CHANGE         1004          //商品更换 
#define REQUEST_TYPE_POS_PRIORITY         1005          //设置POS优先级 
#define REQUEST_TYPE_STOCK_WARN           1006          //库存预警通知 
#define REQUEST_TYPE_COMMON_WARN          1007          //通用预警通知

//配送类型对照表
#define DELIVERY_TYPE_SELF                "self"        //自配送 
#define DELIVERY_TYPE_PLATFORM            "platform"    //平台配送 
#define DELIVERY_TYPE_THRID               "thrid"       //第三方配送 

//配送状态对照表
#define DELIVERY_STATUS_WAIT              0             //等待配送 
#define DELIVERY_STATUS_CONFIRMED         1             //配送单已确认 
#define DELIVERY_STATUS_CANCELED          2             //配送单已取消 
#define DELIVERY_STATUS_SHIPPING          3             //配送中 
#define DELIVERY_STATUS_COMPLETE          4             //配送完成 
#define DELIVERY_STATUS_RECRY_CONFIRM     5	            //配送员取消抢单，等待重新抢单
#define DELIVERY_STATUS_FAILED            6	            //配送失败
#define DELIVERY_STATUS_UNWRITE           -1	        //未写入状态

//平台代码对照表
#define PLANTFORM_CODE_OFFLINE_COMMON                       101     //线下普通单 
#define PLANTFORM_CODE_OFFLINE_YIGUO_DISTRIBUTION           102     //线下易果分销 
#define PLANTFORM_CODE_ONLINE_AUTO_MACHINE                  201     //线上自动贩卖机 
#define PLANTFORM_CODE_ONLINE_AUTO_WASHER                   202     //线上自动洗衣机 
#define PLANTFORM_CODE_ONLINE_QR_CODE                       203     //线上QR扫码购 
#define PLANTFORM_CODE_ONLINE_YIGUO_TO_QUANJIA_DISTRIBUTION 204     //线上易果给全家分销 
#define PLANTFORM_CODE_ONLINE_MEITUAN                       205     //线上美团外卖 
#define PLANTFORM_CODE_ONLINE_BAIDU                         206     //线上百度外卖 
#define PLANTFORM_CODE_ONLINE_ELEMA                         207     //线上饿了吗外卖 
#define PLANTFORM_CODE_ONLINE_JINGDONG                      208     //线上京东外卖 

//响应状态对照表
#define RESPONSE_CODE_SUCCESS              100           //成功 
#define RESPONSE_CODE_FAILED               101           //失败 

//POS操作类型
#define OPERATION_POS_CONFIRM              1011          //确认接单
#define OPERATION_POS_CANCEL               1012          //拒绝接单
#define OPERATION_POS_REFUND_AGREE         1013          //同意退款
#define OPERATION_POS_REFUND_DISAGREE      1014          //拒绝退款

/***********************************
           ODS相关预定义变量
 ***********************************/
//配送类型对照表
#define ODS_DELIVERY_TYPE_SELF                0        //自配送 
#define ODS_DELIVERY_TYPE_PLATFORM            1        //平台配送 

//订单状态对照表
#define ODS_ORDERSTATUS_NEW                   1          //新生成
#define ODS_ORDERSTATUS_CONFIRMED             2          //已确定
#define ODS_ORDERSTATUS_CANCELED              3          //已取消
#define ODS_ORDERSTATUS_SHIPPING              4          //配送中
#define ODS_ORDERSTATUS_WAIT_SHIPPING         5          //等待配送
#define ODS_ORDERSTATUS_COMPLETE              6          //已送达
#define ODS_ORDERSTATUS_DONE                  200        //已送达
#define ODS_ORDERSTATUS_REFUND_FULL           20         //申请全额退款
#define ODS_ORDERSTATUS_REFUND_PART           21         //申请部分退款
#define ODS_ORDERSTATUS_REFUND_AGREE          30         //同意退款
#define ODS_ORDERSTATUS_REFUND_DISAGREE       40         //不同意退款
#define ODS_ORDERSTATUS_REFUND_COMPLETE       100        //退款完成
#define ODS_ORDERSTATUS_CANCELED_TIMEOUT      3001	     //超时取消
#define ODS_ORDERSTATUS_CANCELED_USER         3002	     //用户取消
#define ODS_ORDERSTATUS_CANCELED_KEFU         3003	     //客服取消
#define ODS_ORDERSTATUS_CANCELED_SYS          3004	     //系统取消
#define ODS_ORDERSTATUS_CANCELED_OTHER        3100	     //其他原因取消
#define ODS_ORDERSTATUS_LOCK                  -1	     //已锁定

//推送类型
#define ODS_PUSH_TYPE_HEARTBEAT               3          //心跳
#define ODS_PUSH_TYPE_ORDER                   1001       //订单
#define ODS_PUSH_TYPE_STOCKWARN               1006       //库存预警
#define ODS_PUSH_TYPE_COMMON                  1017       //通用预警
#define ODS_PUSH_TYPE_COMMON_BACK             1018       //通用预警返回

//POS主动推送请求类型
#define ODS_POSPUSH_CONFIRM                   1          //确认接单
#define ODS_POSPUSH_CANCEL					  2          //拒绝接单 	
#define ODS_POSPUSH_REFUND_AGREE              5          //同意退款
#define ODS_POSPUSH_REFUND_DISAGREE           6          //拒绝退款

#endif