/**
* Revenue Settlement and Sharing System GE
* Copyright (C) 2011-2014, Javier Lucio - lucio@tid.es
* Telefonica Investigacion y Desarrollo, S.A.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package es.upm.fiware.rss.expenditureLimit.dao;
import java.util.HashMap;
import java.util.List;
import es.upm.fiware.rss.dao.GenericDao;
import es.upm.fiware.rss.expenditureLimit.model.DbeExpendLimit;
import es.upm.fiware.rss.expenditureLimit.model.DbeExpendLimitPK;
import es.upm.fiware.rss.model.BmCurrency;
import es.upm.fiware.rss.model.BmObCountry;
import es.upm.fiware.rss.model.BmService;
/**
*
*
*/
public interface DbeExpendLimitDao extends GenericDao<DbeExpendLimit, DbeExpendLimitPK> {
public static final String NO_USER_ID = "noUserId";
public static final String NO_APP_PROVIDER_ID = "-1";
public static final String USER_APP_PROV_KEY = "userAndAppProvKey";
public static final String USER_KEY = "userKey";
public static final String APP_PROV_KEY = "appProvKey";
public static final String ALL_GENERIC_KEY = "allGenericKey";
/**
*
* Get the limits for the user.
* User identifier goes with service.
*
* Returns the limits related to the user. Includes generic provider and system limits
*
* @param urlEndUserId
* @param aggregator
* @param appProviderId
* @param bmCurrency
* @return
*/
List<DbeExpendLimit> getExpendLimitsForUserAppProvCurrency(String urlEndUserId,
String aggregator, String appProviderId, BmCurrency bmCurrency);
/**
*
* Get the limits for the user and grouped.
* User identifier goes with service.
*
* Returns the limits related to the user grouped by user and application provider.
* Includes generic provider and system limits
*
* @param urlEndUserId
* @param aggregator
* @param appProviderId
* @param bmCurrency
* @return
*/
HashMap<String, List<DbeExpendLimit>> getOrdExpLimitsForUserAppProvCurrency(String urlEndUserId,
String aggregator, String appProviderId, BmCurrency bmCurrency);
/**
* Get concrete limits.
*
* @param aggregator
* @param provider
* @param userId
* @param bmCurrency
* @return
*/
List<DbeExpendLimit> getExpendLimitsByProviderUserService(
String aggregator, String provider,
String userId, BmCurrency bmCurrency);
}