package org.fluxtream.core.services;
import java.io.Serializable;
import java.util.List;
import org.fluxtream.core.connectors.Connector;
import org.fluxtream.core.domain.GuestAddress;
import org.fluxtream.core.domain.GuestSettings;
import org.fluxtream.core.domain.GuestSettings.DistanceMeasureUnit;
import org.fluxtream.core.domain.GuestSettings.LengthMeasureUnit;
import org.fluxtream.core.domain.GuestSettings.TemperatureUnit;
import org.fluxtream.core.domain.GuestSettings.WeightMeasureUnit;
import org.springframework.transaction.annotation.Transactional;
public interface SettingsService {
public GuestSettings getSettings(long guestId);
public int incrementDisplayCounter(long guestId, String messageName);
public void setFirstname(long guestId, String firstname);
public void setLastname(long guestId, String lastname);
public void setWeightMeasureUnit(long guestId, WeightMeasureUnit unit);
public void setLengthMeasureUnit(long guestId, LengthMeasureUnit unit);
public void setDistanceMeasureUnit(long guestId, DistanceMeasureUnit unit);
public GuestAddress addAddress(long guestId, String type, String address, double latitude,
double longitude, long since, long until, double radius, String jsonString);
public GuestAddress addAddress(long guestId, String type, String address, double latitude,
double longitude, long since, double radius, String jsonString);
public String[] getChannelsForConnector(long guestId, Connector connector);
public void setChannelsForConnector(long guestId, Connector connector, String[] channels);
public List<GuestAddress> getAllAddressesForDate(long guestId, long date);
public List<GuestAddress> getAllAddresses(long guestId);
public List<GuestAddress> getAllAddressesOfType(long guestId, String type);
public List<GuestAddress> getAllAddressesOfTypeForDate(long guestId, String type, long date);
public GuestAddress getAddressById(long guestId, long id);
public void deleteAddressById(long guestId, long id);
public void deleteAllAddresses(long guestId);
public void deleteAllAddressesAtDate(long guestId, long date);
public void deleteAllAddressesOfType(long guestId, String type);
public void deleteAllAddressesOfTypeForDate(long guestId, String type, long date);
public GuestAddress updateAddress(long guestId, long addressId, String type, String address, Double latitude,
Double longitude, Long since, Long until, Double radius, String jsonString);
public void setTemperatureUnit(long guestId, TemperatureUnit temperatureUnit);
public void setConnectorFilterState(long guestId, String stateJSON);
public String getConnectorFilterState(long guestId);
public Object getConnectorSettings(long apiKeyId);
@Transactional(readOnly=false)
void persistConnectorSettings(long apiKeyId, Object settings, Object defaultSettings);
public void saveConnectorSettings(long apiKeyId, String json);
public void saveConnectorSettings(long apiKeyId, Serializable settings);
public void resetConnectorSettings(long apiKeyId);
void setPreferences(long guestId, String preferences);
String getPreferences(long guestId);
}