package de.twomartens.oparlservice.entity.dto; import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.List; @Builder @Getter @ToString @EqualsAndHashCode @AllArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(force = true, access = AccessLevel.PRIVATE) @JsonInclude(JsonInclude.Include.NON_NULL) public class ObjectList { @NonNull @Schema(description = "contains list of objects", required = true) private final List data; @NonNull @Schema(description = "contains information about pagination", required = true) private final Pagination pagination; @NonNull @Schema(description = "contains links related to this list", required = true) private final Links links; public static class ObjectListAgendaItem extends ObjectList {} public static class ObjectListBody extends ObjectList {} public static class ObjectListConsultation extends ObjectList {} public static class ObjectListFile extends ObjectList {} public static class ObjectListLegislativeTerm extends ObjectList {} public static class ObjectListLocation extends ObjectList {} public static class ObjectListMeeting extends ObjectList {} public static class ObjectListMembership extends ObjectList {} public static class ObjectListOrganization extends ObjectList {} public static class ObjectListPaper extends ObjectList {} public static class ObjectListPerson extends ObjectList {} }