package de.twomartens.oparlservice.entity; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; import java.util.List; @SuperBuilder @Getter @ToString @EqualsAndHashCode(callSuper = true) @AllArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(force = true, access = AccessLevel.PRIVATE) @Schema(allOf = CommonFields.class) public class System extends CommonFields { @NonNull @Schema(required = true, description = "URL to the OParl specification supported by this service") private final String oparlVersion; @Schema(description = "Contains a list of URLs to System objects supporting another Oparl version", nullable = true) private final List otherOparlVersions; @NonNull @Schema(required = true, description = "URL to the list of all bodies existing in this system") private final String body; @Schema(description = "User friendly name for this system", nullable = true) private final String name; @Schema(description = "E-Mail-Address for requests related to the OParl-API", nullable = true) private final String contactEmail; @Schema(description = "Name of the contact person who can be reached by contactEmail", nullable = true) private final String contactName; @Schema(description = "URL of the website of the parliamentary information system", nullable = true) private final String website; @Schema(description = "URL to the website of the software creator of the OParl server software", nullable = true) private final String vendor; @Schema(description = "URL to information about the OParl server software utilized by this system", nullable = true) private final String product; }