// Copyright © 2015 HSL <https://www.hsl.fi>
// This program is dual-licensed under the EUPL v1.2 and AGPLv3 licenses.
package fi.hsl.parkandride.core.domain;
import fi.hsl.parkandride.core.domain.validation.Coordinates;
import fi.hsl.parkandride.core.domain.validation.MinElement;
import fi.hsl.parkandride.core.domain.validation.NotNullElement;
import org.geolatte.geom.Polygon;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.Map;
import static com.google.common.collect.Maps.newHashMap;
public class FacilityInfo implements OperatorEntity {
public Long id;
@NotNull
@Valid
public MultilingualString name;
@NotNull
@Coordinates
public Polygon location;
@NotNull
public Long operatorId;
@NotNull
public FacilityStatus status;
@NotNull
public PricingMethod pricingMethod;
@Valid
public MultilingualString statusDescription;
@NotNullElement
@MinElement(1)
@NotNull
public Map<CapacityType, Integer> builtCapacity = newHashMap();
/**
* Summary of unique( pricing[*].usage )
*/
public NullSafeSortedSet<Usage> usages = new NullSafeSortedSet<>();
@Override
public Long operatorId() {
return operatorId;
}
}