package io.kaif.service;
import java.util.List;
import java.util.Map;
import io.kaif.model.account.Authorization;
import io.kaif.model.exception.CreditNotEnoughException;
import io.kaif.model.zone.Zone;
import io.kaif.model.zone.ZoneInfo;
public interface ZoneService {
ZoneInfo loadZone(Zone zone);
ZoneInfo createDefault(String zone, String aliasName);
ZoneInfo createKaif(String zone, String aliasName);
void updateTheme(Zone zone, String theme);
Map<String, List<ZoneInfo>> listZoneAtoZ();
List<ZoneInfo> listRecommendZones();
List<ZoneInfo> listCitizenZones();
ZoneInfo createByUser(String zone, String aliasName, Authorization admin)
throws CreditNotEnoughException;
List<ZoneInfo> listAdministerZones(String username);
boolean isZoneAvailable(String zone);
boolean canCreateZone(Authorization authorization);
List<String> listAdministratorsWithCache(Zone zone);
}