package com.miya.fastcashier.beans;

import java.util.Date;
import java.util.List;

/**
 * 自助收银终端 应用配置信息
 * Created by fengyu on 2018/6/28.
 */
public class SelfCashierTerminalConfig extends BaseDO {

    private String shopDiyParams;

    private AlipayConfig alipayConfig;

    private HuihuaConfig huihuaConfig;

    private ScoRuntimeConfig scoRuntimeConfig;

    private ShopConfig shopConfig;

    private ScoFunctionConfig scoFunctionConfig;

    private MiYaPayPlatformConfig miYaPayPlantformConfig;

    private WeiXinConfig weiXinConfig;

    private LocalDiyConfig localDiyConfig;

    private LogoAndVideoConfig logoAndVideoConfig;


    private PrintConfig printConfig;

    public PrintConfig getPrintConfig() {
        return printConfig;
    }

    public void setPrintConfig(PrintConfig printConfig) {
        this.printConfig = printConfig;
    }

    public LogoAndVideoConfig getLogoAndVideoConfig() {
        return logoAndVideoConfig;
    }

    public void setLogoAndVideoConfig(LogoAndVideoConfig logoAndVideoConfig) {
        this.logoAndVideoConfig = logoAndVideoConfig;
    }

    public ScoRuntimeConfig getScoRuntimeConfig() {
        return scoRuntimeConfig;
    }

    public void setScoRuntimeConfig(ScoRuntimeConfig scoRuntimeConfig) {
        this.scoRuntimeConfig = scoRuntimeConfig;
    }

    public ShopConfig getShopConfig() {
        return shopConfig;
    }

    public void setShopConfig(ShopConfig shopConfig) {
        this.shopConfig = shopConfig;
    }

    public ScoFunctionConfig getScoFunctionConfig() {
        return scoFunctionConfig;
    }

    public void setScoFunctionConfig(ScoFunctionConfig scoFunctionConfig) {
        this.scoFunctionConfig = scoFunctionConfig;
    }

    public LocalDiyConfig getLocalDiyConfig() {
        return localDiyConfig;
    }

    public void setLocalDiyConfig(LocalDiyConfig localDiyConfig) {
        this.localDiyConfig = localDiyConfig;
    }


    public String getShopDiyParams() {
        return shopDiyParams;
    }

    public void setShopDiyParams(String shopDiyParams) {
        this.shopDiyParams = shopDiyParams;
    }

    public WeiXinConfig getWeiXinConfig() {
        return weiXinConfig;
    }

    public void setWeiXinConfig(WeiXinConfig weiXinConfig) {
        this.weiXinConfig = weiXinConfig;
    }

    public AlipayConfig getAlipayConfig() {
        return alipayConfig;
    }

    public void setAlipayConfig(AlipayConfig alipayConfig) {
        this.alipayConfig = alipayConfig;
    }

    public HuihuaConfig getHuihuaConfig() {
        return huihuaConfig;
    }

    public void setHuihuaConfig(HuihuaConfig huihuaConfig) {
        this.huihuaConfig = huihuaConfig;
    }


    public MiYaPayPlatformConfig getMiYaPayPlantformConfig() {
        return miYaPayPlantformConfig;
    }

    public void setMiYaPayPlantformConfig(MiYaPayPlatformConfig miYaPayPlantformConfig) {
        this.miYaPayPlantformConfig = miYaPayPlantformConfig;
    }


    /**
     * 广告图片，视频配置
     */
    public static class LogoAndVideoConfig {

        /**
         * 图片 文件夹全路径
         * 如果商户提供了商品图片，需要放在公司cdn上以一个单独的文件夹存放，图片以商品的条形码命名。
         */
        private String imageFolderName;

        /**
         * 广告图，商户logo，等
         */

        private List<ScoUrlParams> scoUrlParams;

        /**
         * 没商品图片时 默认图片地址
         */
        private String defaultGoodsImgUrl;

        /**
         * 微信（支付包暂时没有）支付满减海报广告
         */
        private boolean isSdkPayDiscPosterShow;



        public boolean isSdkPayDiscPosterShow() {
            return isSdkPayDiscPosterShow;
        }

        public void setSdkPayDiscPosterShow(boolean sdkPayDiscPosterShow) {
            isSdkPayDiscPosterShow = sdkPayDiscPosterShow;
        }


        public List<ScoUrlParams> getScoUrlParams() {
            return scoUrlParams;
        }

        public void setScoUrlParams(List<ScoUrlParams> scoUrlParams) {
            this.scoUrlParams = scoUrlParams;
        }


        public String getImageFolderName() {
            return imageFolderName;
        }

        public void setImageFolderName(String imageFolderName) {
            this.imageFolderName = imageFolderName;
        }

        public String getDefaultGoodsImgUrl() {
            return defaultGoodsImgUrl;
        }

        public void setDefaultGoodsImgUrl(String defaultGoodsImgUrl) {
            this.defaultGoodsImgUrl = defaultGoodsImgUrl;
        }

    }


    /**
     * 广告图片，视频配置
     */
    public static class ScoUrlParams {

        /**
         * 商户logo
         */
        public static final int MERCHANT_LOGO = 1;

        /**
         * 支付宝版新版 上部Url
         */
        public static final int SCO_HOME_ALI_TOP_PIC_URL = 2;

        /**
         * 支付宝版新版 下部Url
         */
        public static final int SCO_HOME_ALI_BOTTOM_PIC_URL = 3;


        /**
         * 横版 商户logo
         */
        public static final int LAND_MERCHANT_LOGO = 4;

        /**
         * 横版 支付宝版新版 上部Url
         */
        public static final int SCO_LAND_HOME_ALI_TOP_PIC_URL = 5;

        /**
         * 横版支付宝版新版 下部Url
         */
        public static final int SCO_LAND_HOME_ALI_BOTTOM_PIC_URL = 6;

        /**
         * 首页 视频和图片 混合轮播
         */
        public static final int HOME_BANNER_AD = 7;


        /**
         * 广告图类型
         */
        private int urlType;

        /**
         * 广告图名称
         */
        private String urlName;

        /**
         * 广告图连接
         */
        private String url;

        /**
         * 图片还是视频 type == 0 代表视频 1 代表图片
         */
        private int type;

        /**
         * 生效开始时间
         */
        private Date startTime;

        /**
         * 生效结束时间
         */
        private Date endTime;

        /**
         * 图片播放间隔,当type==0且图片url列表数量大于1时生效
         */
        private int imageIntervalMillSeconds;


        public Date getStartTime() {
            return startTime;
        }

        public void setStartTime(Date startTime) {
            this.startTime = startTime;
        }

        public Date getEndTime() {
            return endTime;
        }

        public void setEndTime(Date endTime) {
            this.endTime = endTime;
        }

        public int getImageIntervalMillSeconds() {
            return imageIntervalMillSeconds;
        }

        public void setImageIntervalMillSeconds(int imageIntervalMillSeconds) {
            this.imageIntervalMillSeconds = imageIntervalMillSeconds;
        }


        public int getUrlType() {
            return urlType;
        }

        public void setUrlType(int urlType) {
            this.urlType = urlType;
        }

        public String getUrlName() {
            return urlName;
        }

        public void setUrlName(String urlName) {
            this.urlName = urlName;
        }

        public String getUrl() {
            return url;
        }

        public void setUrl(String url) {
            this.url = url;
        }

        public int getType() {
            return type;
        }

        public void setType(int type) {
            this.type = type;
        }
    }


    /**
     * 商户基本信息
     */
    public static class ShopConfig {
        /**
         * 店铺号
         */
        private String storeId;

        /**
         * 店铺名称
         * 示展部顶面页在会段字该
         */
        private String storeName;


        /**
         * 虚拟收银员Id
         * 门店给该账号分配的虚拟收银员Id
         */
        private String operatorId;


        /**
         * posId
         * 门店给该账号分配的虚拟POsId
         */
        private String posId;


        /**
         * 门店地址
         */
        private String storeAddress;

        /**
         * 商户名称
         */
        String mechantName;

        /**
         * 商户公众号，以"|"分隔
         */
        private String officialAccountUrl;

        public String getOfficialAccountUrl() {
            return officialAccountUrl;
        }

        public ShopConfig setOfficialAccountUrl(String officialAccountUrl) {
            this.officialAccountUrl = officialAccountUrl;
            return this;
        }

        public String getMechantName() {
            return mechantName;
        }

        public ShopConfig setMechantName(String mechantName) {
            this.mechantName = mechantName;
            return this;
        }

        public String getStoreAddress() {
            return storeAddress;
        }

        public void setStoreAddress(String storeAddress) {
            this.storeAddress = storeAddress;
        }

        public String getStoreId() {
            return storeId;
        }

        public void setStoreId(String storeId) {
            this.storeId = storeId;
        }

        public String getStoreName() {
            return storeName;
        }

        public void setStoreName(String storeName) {
            this.storeName = storeName;
        }

        public String getOperatorId() {
            return operatorId;
        }

        public void setOperatorId(String operatorId) {
            this.operatorId = operatorId;
        }

        public String getPosId() {
            return posId;
        }

        public void setPosId(String posId) {
            this.posId = posId;
        }
    }


    public static class PrintConfig {

        /**
         * 小票尾部信息
         */
        private String printFooterMessage;


        /**
         * 小票头显示信息
         */
        private String printHeaderMessage;

        /**
         * 额外信息
         */
        private String extData;

        public String getPrintFooterMessage() {
            return printFooterMessage;
        }

        public void setPrintFooterMessage(String printFooterMessage) {
            this.printFooterMessage = printFooterMessage;
        }

        public String getPrintHeaderMessage() {
            return printHeaderMessage;
        }

        public void setPrintHeaderMessage(String printHeaderMessage) {
            this.printHeaderMessage = printHeaderMessage;
        }

        public String getExtData() {
            return extData;
        }

        public void setExtData(String extData) {
            this.extData = extData;
        }
    }

    /**
     * Sco 運行時 配置
     */
    public static class ScoRuntimeConfig {


        /**
         * 获取商品信息，结算，回传订单等功能用的地址 eg：erpIp https://hhmspre.miyapay.com/
         */
        private String erpIp;


        /**
         * 使用的支付服务标识
         * 1.米雅支付平台，2.米雅jar包链接前置 3.米雅PosHub
         */
        private int usePayServiceTag;


        /**
         * 组件提供者标示
         * 支付宝刷脸付为 0，微信刷脸付为1  无刷脸 为3
         */
        private int componentProviderCategory;


        /**
         * 不配置默认使用erIp
         * 该地址将影响到前端刷脸app的检查更新接口、日志上传接口等。
         * 如果dataSourceIp配置成了直连商户的posip，那么通常需要配置此字段
         */
        private String platformUrl;


        /**
         * 是否需要 初始化
         * 针对特殊商户，例如商品主档获取途径很特殊，默认false
         */
        private boolean needInitBeforeUse;


        /**
         * 事件分发器实现类全类名 3.0.0 以上版本存在
         * 不配置使用默认实现类
         */
        private String actionDispatcherClassName;


        /**
         * 商户erp数据处理核心类全类名
         */
        private String dataSourceClassName;

        /**
         * 自助收银机首页展示页全类名
         * 不配置使用默认页面
         */
        private String ScoHomeActionViewActivityClassName;
        /**
         * 自助收银机支付页展示页全类名
         * 不配置使用默认页面
         */
        private String ScoPayActionViewActivityClassName;

        /**
         * 自助收银机支付结果页展示页全类名
         * 不配置使用默认页面
         */
        private String ScoPayResultActionViewActivityClassName;

        /**
         * 自助收银机扫码添加商品页展示页全类名
         * 不配置使用默认页面
         */
        private String ScoScanGoodsActionViewActivityClassName;

        /**
         * 自助收银机商家操作中心展示页全类名
         * 不配置使用默认页面
         */
        private String ScoMerchantOperateActionViewActivityClassName;


        /**
         * 自助收银机结算页面展示页全类名
         * 不配置使用默认页面
         */
        private String ScoBalanceOrderActionViewActivityClassName;
        /**
         * 自助收银机核验页全类名
         * 不配置使用默认页面
         */
        private String ScoVerifyHomeActionViewActivityClassName;


        /**
         * 商家操作入口是否显示
         */
        private boolean merchantOperatePageEnable;

        /**
         * 打印类全类名
         */
        private String printDataSourceClassName;

        /**
         * 是否使用电子小票
         */
        private boolean useETicket;




        public boolean isMerchantOperatePageEnable() {
            return merchantOperatePageEnable;
        }

        public void setMerchantOperatePageEnable(boolean merchantOperatePageEnable) {
            this.merchantOperatePageEnable = merchantOperatePageEnable;
        }

        public boolean isUseETicket() {
            return useETicket;
        }

        public void setUseETicket(boolean useETicket) {
            this.useETicket = useETicket;
        }

        public String getPrintDataSourceClassName() {
            return printDataSourceClassName;
        }

        public void setPrintDataSourceClassName(String printDataSourceClassName) {
            this.printDataSourceClassName = printDataSourceClassName;
        }

        public String getScoMerchantOperateActionViewActivityClassName() {
            return ScoMerchantOperateActionViewActivityClassName;
        }

        public void setScoMerchantOperateActionViewActivityClassName(String scoMerchantOperateActionViewActivityClassName) {
            ScoMerchantOperateActionViewActivityClassName = scoMerchantOperateActionViewActivityClassName;
        }

        public String getErpIp() {
            return erpIp;
        }

        public void setErpIp(String erpIp) {
            this.erpIp = erpIp;
        }

        public int getUsePayServiceTag() {
            return usePayServiceTag;
        }

        public void setUsePayServiceTag(int usePayServiceTag) {
            this.usePayServiceTag = usePayServiceTag;
        }

        public int getComponentProviderCategory() {
            return componentProviderCategory;
        }

        public void setComponentProviderCategory(int componentProviderCategory) {
            this.componentProviderCategory = componentProviderCategory;
        }

        public String getPlatformUrl() {
            return platformUrl;
        }

        public void setPlatformUrl(String platformUrl) {
            this.platformUrl = platformUrl;
        }

        public boolean isNeedInitBeforeUse() {
            return needInitBeforeUse;
        }

        public void setNeedInitBeforeUse(boolean needInitBeforeUse) {
            this.needInitBeforeUse = needInitBeforeUse;
        }

        public String getActionDispatcherClassName() {
            return actionDispatcherClassName;
        }

        public void setActionDispatcherClassName(String actionDispatcherClassName) {
            this.actionDispatcherClassName = actionDispatcherClassName;
        }

        public String getDataSourceClassName() {
            return dataSourceClassName;
        }

        public void setDataSourceClassName(String dataSourceClassName) {
            this.dataSourceClassName = dataSourceClassName;
        }

        public String getScoHomeActionViewActivityClassName() {
            return ScoHomeActionViewActivityClassName;
        }

        public void setScoHomeActionViewActivityClassName(String scoHomeActionViewActivityClassName) {
            ScoHomeActionViewActivityClassName = scoHomeActionViewActivityClassName;
        }

        public String getScoPayActionViewActivityClassName() {
            return ScoPayActionViewActivityClassName;
        }

        public void setScoPayActionViewActivityClassName(String scoPayActionViewActivityClassName) {
            ScoPayActionViewActivityClassName = scoPayActionViewActivityClassName;
        }

        public String getScoPayResultActionViewActivityClassName() {
            return ScoPayResultActionViewActivityClassName;
        }

        public void setScoPayResultActionViewActivityClassName(String scoPayResultActionViewActivityClassName) {
            ScoPayResultActionViewActivityClassName = scoPayResultActionViewActivityClassName;
        }

        public String getScoScanGoodsActionViewActivityClassName() {
            return ScoScanGoodsActionViewActivityClassName;
        }

        public void setScoScanGoodsActionViewActivityClassName(String scoScanGoodsActionViewActivityClassName) {
            ScoScanGoodsActionViewActivityClassName = scoScanGoodsActionViewActivityClassName;
        }

        public String getScoBalanceOrderActionViewActivityClassName() {
            return ScoBalanceOrderActionViewActivityClassName;
        }

        public void setScoBalanceOrderActionViewActivityClassName(String scoBalanceOrderActionViewActivityClassName) {
            ScoBalanceOrderActionViewActivityClassName = scoBalanceOrderActionViewActivityClassName;
        }

        public String getScoVerifyHomeActionViewActivityClassName() {
            return ScoVerifyHomeActionViewActivityClassName;
        }

        public void setScoVerifyHomeActionViewActivityClassName(String scoVerifyHomeActionViewActivityClassName) {
            ScoVerifyHomeActionViewActivityClassName = scoVerifyHomeActionViewActivityClassName;
        }

    }


    /**
     * 支付宝配置参数
     */
    public static class AlipayConfig {
        /**
         * 商户 pid
         */
        private String merchantId;
        /**
         * 商户appip
         */
        private String appId;
        /**
         * 米雅isv pid
         */
        private String aliPartnerId;

        public String getMerchantId() {
            return merchantId;
        }

        public void setMerchantId(String merchantId) {
            this.merchantId = merchantId;
        }

        public String getAppId() {
            return appId;
        }

        public void setAppId(String appId) {
            this.appId = appId;
        }

        public String getAliPartnerId() {
            return aliPartnerId;
        }

        public void setAliPartnerId(String aliPartnerId) {
            this.aliPartnerId = aliPartnerId;
        }
    }


    /**
     * 针对KA 客户的本地个性化配置选项
     */
    public static class LocalDiyConfig {


        /**
         * 是否显示米雅支持
         */
        private boolean isShowMiYaSupportLogo = true;

        /**
         * 商品列表是否显示原价
         */
        private boolean isShowOriginPrice = true;


        public boolean isShowMiYaSupportLogo() {
            return isShowMiYaSupportLogo;
        }

        public void setShowMiYaSupportLogo(boolean showMiYaSupportLogo) {
            isShowMiYaSupportLogo = showMiYaSupportLogo;
        }

        public boolean isShowOriginPrice() {
            return isShowOriginPrice;
        }

        public void setShowOriginPrice(boolean showOriginPrice) {
            isShowOriginPrice = showOriginPrice;
        }
    }

    /**
     * 会花服务器配置信息
     */
    @Deprecated
    public static class HuihuaConfig {
        private String name;
        private String code;
        private String merchant;
        private String banners;
        //店铺id
        private String storeId;
        //店铺名称
        private String storeName;

        private String storeAddress;
        //會花 hhMerchant
        private String hhMerchant;
        /**
         * 收银员Id
         */
        private String operatorId;

        /**
         * 商户名称
         */
        String mechantName;

        public String getMechantName() {
            return mechantName;
        }

        public HuihuaConfig setMechantName(String mechantName) {
            this.mechantName = mechantName;
            return this;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getCode() {
            return code;
        }

        public void setCode(String code) {
            this.code = code;
        }

        public String getMerchant() {
            return merchant;
        }

        public void setMerchant(String merchant) {
            this.merchant = merchant;
        }

        public String getBanners() {
            return banners;
        }

        public void setBanners(String banners) {
            this.banners = banners;
        }

        public String getStoreId() {
            return storeId;
        }

        public void setStoreId(String storeId) {
            this.storeId = storeId;
        }

        public String getStoreName() {
            return storeName;
        }

        public void setStoreName(String storeName) {
            this.storeName = storeName;
        }

        public String getStoreAddress() {
            return storeAddress;
        }

        public void setStoreAddress(String storeAddress) {
            this.storeAddress = storeAddress;
        }

        public String getHhMerchant() {
            return hhMerchant;
        }

        public void setHhMerchant(String hhMerchant) {
            this.hhMerchant = hhMerchant;
        }

        public String getOperatorId() {
            return operatorId;
        }

        public void setOperatorId(String operatorId) {
            this.operatorId = operatorId;
        }
    }


    /**
     * 自助收银终端 功能开关配置
     */
    public static class ScoFunctionConfig {

        /**
         * 是否限制档口商品，0：不限制，1：限制
         */
        private int restrictGoods;


        /**
         * 商户 特殊功能开关以Json存放
         */
        private String extData;



        /**
         * 商户特殊功能开关解析类
         */
        private String merchantFunctionSerializableClass;



        /**
         * 扫描会员弹框提示文案
         */
        private String scanMemberHint;


        /**
         * 是否开启称重防损功能
         */
        private boolean enableWeighing;


        /**
         * 是否开启重传组件
         */
        private boolean enableReUpload;


        /**
         * 会员功能是否启用
         */
        private boolean memberFeatureEnable = false;


        /**
         * 是否需要结算订单
         */
        private boolean needBalanceOrder = false;
        /**
         * 是否开启日结功能
         */
        private boolean dailyCheckEnable = false;

        /**
         * 登录接口错误时，在本地有配置信息的情况下，直接用本地配置信息进入
         */
        private boolean offlineModeEnableWhenNetWorkError;

        /**
         * 开启绑定Mac 地址
         */
        private boolean bindDeviceMacAddressEnable;
        /**
         * 获取非标准商品的请求地址
         */
        private String queryNonstandardGoodsUrl;

        /**
         * 是否开启会员注册
         */
        private boolean registerMemberEnable;

        /**
         * 强制性校验会员id为手机号
         */
        private boolean forceMemberIdAsPhone;


        /**
         * 商品列表分组显示个数，0表示不分组
         */
        private int goodsGroupNum;

        /**
         * 注册会员请求地址
         */
        private String requestRegisterMemberUrl;


        /**
         * 是否开启绑定员工卡
         */

        private boolean bindStaffIdEnable;

        /**
         * 请求绑定员工卡地址
         */
        private String requestBindStaffIdUrl;


        /**
         * 是否启用优惠券
         */
        private boolean couponEnable;


        /**
         * 核验优惠券的地址
         */
        private String verifyCouponUrl;


        /**
         * 可以使用的支付方式控制 以支付平台的支付方式TAG为准  格式：[1|3|A]
         */
        private String payWayControl;

        /**
         * 是否开启非标准商品
         */
        private boolean nonstandardGoodsEnable;


        /**
         * 是否开启核验
         */
        private boolean verifyFeatureEnable;


        /**
         * 是否关闭自助收银入口
         */
        private boolean closeSelfCashierFeatureEnable;

        /**
         * 核验地址
         */
        private String verifyUrl;


        /**
         * 是否开启手动输入数量功能
         */
        private boolean enableModifyGoodsNum;

        /**
         * 是否通过接口验证会员
         *
         * @return
         */
        private boolean callMemberApi;

        //是否开启订单查询
        private boolean orderQueryFeatureEnable = false;

        //是否开启员工登陆
        private boolean staffLoginFeatureEnable = false;

        //是否开启优惠明细显示
        private boolean couponDetailShowEnable;

        //是否在会员登录之后立即刷新刷新购物车显示商品的会员信息（目前万宁微信在使用）
        private boolean isChangeGoodsInfoAfterInputMember;

        //首页功能优先级 0优先展示收银 1代表优先展示会员功能
        private int homeFeatureShowCategory = 0;

        //会员功能展示场景 0是首页和扫商品页面都展示 1是只有首页展示
        private int memberFeatureShowScene = 0;

        //是否展示会员积分
        private boolean isShowMemberScore;

        /**
         * 是否支持0元支付
         */
        boolean enablePayZero;

        /**
         * 是否开启信用防损功能
         */
        boolean isOpenCredit;

        /**
         * 是否静默授权
         */
        boolean isSilentCredit;

        /**
         * 授权配置
         * <p>
         * 从低到高，减少商品，删除商品，退出交易，进入功能中心，进入购物车
         * 需要的话填1，不需要的话填0，高位有1的话，那么中间某功能不需要授权的话也要填0
         * 如：只需要进入功能中心授权，配置1000
         * 只需要退出交易授权：配置100
         * 需要退出交易，减少商品，删除商品，进入购物车授权，配置10111
         */
        private String authConfig;

        /**
         * 授权前缀
         */
        private String authPrefix;

        /**
         * 授权码 - 如果服务端配置了 就以服务端为准
         */
        private String authCode;


        public int getRestrictGoods() {
            return restrictGoods;
        }

        public ScoFunctionConfig setRestrictGoods(int restrictGoods) {
            this.restrictGoods = restrictGoods;
            return this;
        }

        public String getAuthPrefix() {
            return authPrefix;
        }

        public void setAuthPrefix(String authPrefix) {
            this.authPrefix = authPrefix;
        }

        public String getAuthCode() {
            return authCode;
        }

        public void setAuthCode(String authCode) {
            this.authCode = authCode;
        }

        public String getMerchantFunctionSerializableClass() {
            return merchantFunctionSerializableClass;
        }

        public void setMerchantFunctionSerializableClass(String merchantFunctionSerializableClass) {
            this.merchantFunctionSerializableClass = merchantFunctionSerializableClass;
        }

        public String getExtData() {
            return extData;
        }

        public void setExtData(String extData) {
            this.extData = extData;
        }

        public boolean isEnablePayZero() {
            return enablePayZero;
        }

        public void setEnablePayZero(boolean enablePayZero) {
            this.enablePayZero = enablePayZero;
        }

        public boolean isOpenCredit() {
            return isOpenCredit;
        }

        public void setOpenCredit(boolean openCredit) {
            isOpenCredit = openCredit;
        }

        public boolean isSilentCredit() {
            return isSilentCredit;
        }

        public void setSilentCredit(boolean silentCredit) {
            isSilentCredit = silentCredit;
        }

        public boolean isShowMemberScore() {
            return isShowMemberScore;
        }

        public void setShowMemberScore(boolean showMemberScore) {
            isShowMemberScore = showMemberScore;
        }

        public int getHomeFeatureShowCategory() {
            return homeFeatureShowCategory;
        }

        public void setHomeFeatureShowCategory(int homeFeatureShowCategory) {
            this.homeFeatureShowCategory = homeFeatureShowCategory;
        }

        public int getMemberFeatureShowScene() {
            return memberFeatureShowScene;
        }

        public void setMemberFeatureShowScene(int memberFeatureShowScene) {
            this.memberFeatureShowScene = memberFeatureShowScene;
        }


        public boolean isEnableWeighing() {
            return enableWeighing;
        }

        public ScoFunctionConfig setEnableWeighing(boolean enableWeighing) {
            this.enableWeighing = enableWeighing;
            return this;
        }

        public boolean isCloseSelfCashierFeatureEnable() {
            return closeSelfCashierFeatureEnable;
        }

        public void setCloseSelfCashierFeatureEnable(boolean closeSelfCashierFeatureEnable) {
            this.closeSelfCashierFeatureEnable = closeSelfCashierFeatureEnable;
        }

        public boolean isChangeGoodsInfoAfterInputMember() {
            return isChangeGoodsInfoAfterInputMember;
        }

        public void setChangeGoodsInfoAfterInputMember(boolean changeGoodsInfoAfterInputMember) {
            isChangeGoodsInfoAfterInputMember = changeGoodsInfoAfterInputMember;
        }

        public boolean isCouponDetailShowEnable() {
            return couponDetailShowEnable;
        }

        public void setCouponDetailShowEnable(boolean couponDetailShowEnable) {
            this.couponDetailShowEnable = couponDetailShowEnable;
        }


        public boolean isVerifyFeatureEnable() {
            return verifyFeatureEnable;


        }

        public String getScanMemberHint() {
            return scanMemberHint;
        }

        public ScoFunctionConfig setScanMemberHint(String scanMemberHint) {
            this.scanMemberHint = scanMemberHint;
            return this;
        }

        public void setVerifyFeatureEnable(boolean verifyFeatureEnable) {
            this.verifyFeatureEnable = verifyFeatureEnable;
        }

        public boolean isCallMemberApi() {
            return callMemberApi;
        }

        public boolean getCallMemberApi() {
            return callMemberApi;
        }

        public void setCallMemberApi(boolean callMemberApi) {
            this.callMemberApi = callMemberApi;
        }

        public boolean isNonstandardGoodsEnable() {
            return nonstandardGoodsEnable;
        }


        public boolean isOrderQueryFeatureEnable() {
            return orderQueryFeatureEnable;
        }

        public void setOrderQueryFeatureEnable(boolean orderQueryFeatureEnable) {
            this.orderQueryFeatureEnable = orderQueryFeatureEnable;
        }

        public boolean isStaffLoginFeatureEnable() {
            return staffLoginFeatureEnable;
        }

        public void setStaffLoginFeatureEnable(boolean starffLoginFeatureEnable) {
            this.staffLoginFeatureEnable = starffLoginFeatureEnable;
        }

        public String getVerifyUrl() {
            return verifyUrl;
        }

        public void setVerifyUrl(String verifyUrl) {
            this.verifyUrl = verifyUrl;
        }

        public boolean isEnableModifyGoodsNum() {
            return enableModifyGoodsNum;
        }

        public void setEnableModifyGoodsNum(boolean enableModifyGoodsNum) {
            this.enableModifyGoodsNum = enableModifyGoodsNum;
        }

        public boolean getNonstandardGoodsEnable() {
            return nonstandardGoodsEnable;
        }

        public void setNonstandardGoodsEnable(boolean nonstandardGoodsEnable) {
            this.nonstandardGoodsEnable = nonstandardGoodsEnable;
        }

        public boolean isMemberFeatureEnable() {
            return memberFeatureEnable;
        }

        public void setMemberFeatureEnable(boolean memberFeatureEnable) {
            this.memberFeatureEnable = memberFeatureEnable;
        }

        public boolean isNeedBalanceOrder() {
            return needBalanceOrder;
        }

        public void setNeedBalanceOrder(boolean needBalanceOrder) {
            this.needBalanceOrder = needBalanceOrder;
        }

        public boolean isDailyCheckEnable() {
            return dailyCheckEnable;
        }

        public void setDailyCheckEnable(boolean dailyCheckEnable) {
            this.dailyCheckEnable = dailyCheckEnable;
        }


        public boolean isOfflineModeEnableWhenNetWorkError() {
            return offlineModeEnableWhenNetWorkError;
        }

        public void setOfflineModeEnableWhenNetWorkError(boolean offlineModeEnableWhenNetWorkError) {
            this.offlineModeEnableWhenNetWorkError = offlineModeEnableWhenNetWorkError;
        }

        public boolean isBindDeviceMacAddressEnable() {
            return bindDeviceMacAddressEnable;
        }

        public void setBindDeviceMacAddressEnable(boolean bindDeviceMacAddressEnable) {
            this.bindDeviceMacAddressEnable = bindDeviceMacAddressEnable;
        }


        public String getQueryNonstandardGoodsUrl() {
            return queryNonstandardGoodsUrl;
        }

        public void setQueryNonstandardGoodsUrl(String queryNonstandardGoodsUrl) {
            this.queryNonstandardGoodsUrl = queryNonstandardGoodsUrl;
        }

        public boolean isRegisterMemberEnable() {
            return registerMemberEnable;
        }

        public void setRegisterMemberEnable(boolean registerMemberEnable) {
            this.registerMemberEnable = registerMemberEnable;
        }


        public boolean isForceMemberIdAsPhone() {
            return forceMemberIdAsPhone;
        }

        public void setForceMemberIdAsPhone(boolean forceMemberIdAsPhone) {
            this.forceMemberIdAsPhone = forceMemberIdAsPhone;
        }

        public int getGoodsGroupNum() {
            return goodsGroupNum;
        }

        public void setGoodsGroupNum(int goodsGroupNum) {
            this.goodsGroupNum = goodsGroupNum;
        }

        public String getRequestRegisterMemberUrl() {
            return requestRegisterMemberUrl;
        }

        public void setRequestRegisterMemberUrl(String requestRegisterMemberUrl) {
            this.requestRegisterMemberUrl = requestRegisterMemberUrl;
        }

        public boolean isBindStaffIdEnable() {
            return bindStaffIdEnable;
        }

        public void setBindStaffIdEnable(boolean bindStaffIdEnable) {
            this.bindStaffIdEnable = bindStaffIdEnable;
        }

        public String getRequestBindStaffIdUrl() {
            return requestBindStaffIdUrl;
        }

        public void setRequestBindStaffIdUrl(String requestBindStaffIdUrl) {
            this.requestBindStaffIdUrl = requestBindStaffIdUrl;
        }

        public boolean isCouponEnable() {
            return couponEnable;
        }

        public void setCouponEnable(boolean couponEnable) {
            this.couponEnable = couponEnable;
        }

        public String getVerifyCouponUrl() {
            return verifyCouponUrl;
        }

        public void setVerifyCouponUrl(String verifyCouponUrl) {
            this.verifyCouponUrl = verifyCouponUrl;
        }

        public String getPayWayControl() {
            return payWayControl;
        }

        public void setPayWayControl(String payWayControl) {
            this.payWayControl = payWayControl;
        }

        public boolean isEnableReUpload() {
            return enableReUpload;
        }

        public ScoFunctionConfig setEnableReUpload(boolean enableReUpload) {
            this.enableReUpload = enableReUpload;
            return this;
        }


    }


    /**
     * 米雅支付平台 配置参数
     */
    public static class MiYaPayPlatformConfig {
        /**
         * 支付平台集群地址
         * eg http://118.178.120.57/
         */
        private String miyaPayPlatformUrl;
        /**
         * 米雅支付平台商户号
         */
        private String saasId;
        /**
         * 门店号
         */
        private String marketId;
        /**
         * 米雅支付平台 签名key
         */
        private String miyaPayPlatformSignKey;

        /**
         * pos 机具id
         */
        private String posId;
        /**
         * 米雅支付平台 支付版本
         */
        private String miyaPayApiVersion;

        /**
         * 收银员id
         */
        private String cashierCode;

        /**
         * 支付渠道所展示的商品信息描述
         */
        private String payBillShowMsg;


        public String getPayBillShowMsg() {
            return payBillShowMsg;
        }

        public void setPayBillShowMsg(String payBillShowMsg) {
            this.payBillShowMsg = payBillShowMsg;
        }

        public String getMiyaPayPlatformUrl() {
            return miyaPayPlatformUrl;
        }

        public void setMiyaPayPlatformUrl(String miyaPayPlatformUrl) {
            this.miyaPayPlatformUrl = miyaPayPlatformUrl;
        }


        public String getSaasId() {
            return saasId;
        }

        public void setSaasId(String saasId) {
            this.saasId = saasId;
        }

        public String getMarketId() {
            return marketId;
        }

        public void setMarketId(String marketId) {
            this.marketId = marketId;
        }

        public String getMiyaPayPlatformSignKey() {
            return miyaPayPlatformSignKey;
        }

        public void setMiyaPayPlatformSignKey(String miyaPayPlatformSignKey) {
            this.miyaPayPlatformSignKey = miyaPayPlatformSignKey;
        }

        public String getPosId() {
            return posId;
        }

        public void setPosId(String posId) {
            this.posId = posId;
        }

        public String getMiyaPayApiVersion() {
            return miyaPayApiVersion;
        }

        public void setMiyaPayApiVersion(String miyaPayApiVersion) {
            this.miyaPayApiVersion = miyaPayApiVersion;
        }

        public String getCashierCode() {
            return cashierCode;
        }

        public void setCashierCode(String cashierCode) {
            this.cashierCode = cashierCode;
        }
    }


    /**
     * 微信 参数配置
     */
    public static class WeiXinConfig {
        /**
         * 公众号
         */
        private String WxAppid;

        /**
         * 商户号
         */
        private String WxMchId;

        /**
         * 子商户公众账号ID(服务商模式)
         */
        private String WxSubAppid;

        /**
         * 子商户号(服务商模式)
         */
        private String WxSubMchId;

        /**
         * 微信代理的IP
         */
        private String WxProxyIp;

        /**
         * 是否上传sub_appid
         */
        private boolean wxAddSubAppid = false;

        /**
         * 是否保持使用空的sub_mch_id，即不传入sub_mch_id，微信万宁的不传，其它商户的传
         */
        private boolean isKeepNullSubMchId = false;

        /**
         * 微信代理的端口
         */
        private String WxProxyPort;


        public boolean isWxAddSubAppid() {
            return wxAddSubAppid;
        }

        public boolean isKeepNullSubMchId() {
            return isKeepNullSubMchId;
        }

        public void setKeepNullSubMchId(boolean keepNullSubMchId) {
            isKeepNullSubMchId = keepNullSubMchId;
        }

        public void setWxAddSubAppid(boolean wxAddSubAppid) {
            this.wxAddSubAppid = wxAddSubAppid;
        }

        public String getWxProxyIp() {
            return WxProxyIp;
        }

        public void setWxProxyIp(String wxProxyIp) {
            WxProxyIp = wxProxyIp;
        }

        public String getWxProxyPort() {
            return WxProxyPort;
        }

        public void setWxProxyPort(String wxProxyPort) {
            WxProxyPort = wxProxyPort;
        }


        public String getWxAppid() {
            return WxAppid;
        }

        public void setWxAppid(String wxAppid) {
            WxAppid = wxAppid;
        }

        public String getWxMchId() {
            return WxMchId;
        }

        public void setWxMchId(String wxMchId) {
            WxMchId = wxMchId;
        }

        public String getWxSubAppid() {
            return WxSubAppid;
        }

        public void setWxSubAppid(String wxSubAppid) {
            WxSubAppid = wxSubAppid;
        }

        public String getWxSubMchId() {
            return WxSubMchId;
        }

        public void setWxSubMchId(String wxSubMchId) {
            WxSubMchId = wxSubMchId;
        }
    }
}
