package com.napa.pulse.service.interfaces; import com.napa.pulse.dto.ActionResult; import com.napa.pulse.entity.pulseui.Site; import com.napa.pulse.entity.pulseui.SiteType; import com.napa.pulse.entity.security.User; import org.hibernate.HibernateException; import java.util.List; import java.util.Map; public interface SiteService { List> getSiteGroups(User user, String userAccessSites) throws Exception; ActionResult updateSiteGroupName(User user, Integer siteGroupId, String newSiteGroupName); int createNewSiteGroup(User user, String groupName, String groupTypeCode, String siteListString); List> getSitesByGroup(Integer groupId, User user, String userAccessSites, int userId, String sessionType) throws Exception; List getAllSites(User user, String userAccessSites, int userId, String sessionType) throws HibernateException; ActionResult deleteSiteGroup(User user, Integer groupId); List getSiteTypes(String language); ActionResult addSitesToGroups(User user, String siteIds, String groupIds); ActionResult replaceGroupSites(User user, String siteIds, Integer groupId); List> getSiteGroupsTypes(User user); int getSiteCount(int siteGroupId, User user, String userAccessSites, String sessionType) throws Exception; List> getSiteGroupsInventorySnapShot(User user, String userAccessSites, String sessionType); List> getInventorySnapShotData(User user, String userAccessSites, int groupId); List> getInventorySnapShotCustomGroupData(Integer[] siteIds); List> getSiteAddresses(User user, String[] siteIds); List> getSitesByType(User user, String siteTypeCode) throws Exception; boolean checkGroupNameUnique(String groupName, User user); boolean getHubSpokeNetworkFlag(Integer groupId, User user, String userAccessSites, String siteIds) throws Exception; }