package com.salesmanager.core.model.system;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.json.simple.JSONAware;
import org.json.simple.JSONObject;
public class MerchantConfig implements Serializable, JSONAware {
/**
* TODO
* Add a generic key value in order to allow the creation of configuration
* on the fly from the client application and read from a key value map
*/
private static final long serialVersionUID = 1L;
private boolean displayCustomerSection =false;
private boolean displayContactUs =false;
private boolean displayStoreAddress = false;
private boolean displayAddToCartOnFeaturedItems = false;
private boolean displayCustomerAgreement = false;
private boolean allowPurchaseItems = true;
private boolean displaySearchBox = true;
private boolean testMode = false;
private boolean debugMode = false;
/** Store default search json config **/
private Map<String,Boolean> useDefaultSearchConfig= new HashMap<String,Boolean>();//language code | true or false
private Map<String,String> defaultSearchConfigPath= new HashMap<String,String>();//language code | file path
@SuppressWarnings("unchecked")
@Override
public String toJSONString() {
JSONObject data = new JSONObject();
data.put("displayCustomerSection", this.isDisplayCustomerSection());
data.put("displayContactUs", this.isDisplayContactUs());
data.put("displayStoreAddress", this.isDisplayStoreAddress());
data.put("displayAddToCartOnFeaturedItems", this.isDisplayAddToCartOnFeaturedItems());
data.put("displayCustomerAgreement", this.isDisplayCustomerAgreement());
data.put("allowPurchaseItems", this.isAllowPurchaseItems());
data.put("displaySearchBox", this.displaySearchBox);
data.put("testMode", this.isTestMode());
data.put("debugMode", this.isDebugMode());
if(useDefaultSearchConfig!=null) {
JSONObject obj = new JSONObject();
for(String key : useDefaultSearchConfig.keySet()) {
Boolean val = (Boolean)useDefaultSearchConfig.get(key);
if(val!=null) {
obj.put(key,val);
}
}
data.put("useDefaultSearchConfig", obj);
}
if(defaultSearchConfigPath!=null) {
JSONObject obj = new JSONObject();
for(String key : defaultSearchConfigPath.keySet()) {
String val = (String)defaultSearchConfigPath.get(key);
if(!StringUtils.isBlank(val)) {
obj.put(key, val);
}
}
data.put("defaultSearchConfigPath", obj);
}
return data.toJSONString();
}
public void setDisplayCustomerSection(boolean displayCustomerSection) {
this.displayCustomerSection = displayCustomerSection;
}
public boolean isDisplayCustomerSection() {
return displayCustomerSection;
}
public void setDisplayContactUs(boolean displayContactUs) {
this.displayContactUs = displayContactUs;
}
public boolean isDisplayContactUs() {
return displayContactUs;
}
public boolean isDisplayStoreAddress() {
return displayStoreAddress;
}
public void setDisplayStoreAddress(boolean displayStoreAddress) {
this.displayStoreAddress = displayStoreAddress;
}
public void setUseDefaultSearchConfig(Map<String,Boolean> useDefaultSearchConfig) {
this.useDefaultSearchConfig = useDefaultSearchConfig;
}
public Map<String,Boolean> getUseDefaultSearchConfig() {
return useDefaultSearchConfig;
}
public void setDefaultSearchConfigPath(Map<String,String> defaultSearchConfigPath) {
this.defaultSearchConfigPath = defaultSearchConfigPath;
}
public Map<String,String> getDefaultSearchConfigPath() {
return defaultSearchConfigPath;
}
public void setDisplayAddToCartOnFeaturedItems(
boolean displayAddToCartOnFeaturedItems) {
this.displayAddToCartOnFeaturedItems = displayAddToCartOnFeaturedItems;
}
public boolean isDisplayAddToCartOnFeaturedItems() {
return displayAddToCartOnFeaturedItems;
}
public boolean isDisplayCustomerAgreement() {
return displayCustomerAgreement;
}
public void setDisplayCustomerAgreement(boolean displayCustomerAgreement) {
this.displayCustomerAgreement = displayCustomerAgreement;
}
public boolean isAllowPurchaseItems() {
return allowPurchaseItems;
}
public void setAllowPurchaseItems(boolean allowPurchaseItems) {
this.allowPurchaseItems = allowPurchaseItems;
}
public boolean isDisplaySearchBox() {
return displaySearchBox;
}
public void setDisplaySearchBox(boolean displaySearchBox) {
this.displaySearchBox = displaySearchBox;
}
public boolean isTestMode() {
return testMode;
}
public void setTestMode(boolean testMode) {
this.testMode = testMode;
}
public boolean isDebugMode() {
return debugMode;
}
public void setDebugMode(boolean debugMode) {
this.debugMode = debugMode;
}
}