diff --git a/src/main/java/de/ozgcloud/admin/common/AbstractLinkedResourceDeserializer.java b/src/main/java/de/ozgcloud/admin/common/AbstractLinkedResourceDeserializer.java
deleted file mode 100644
index 106c3616b4a08d51e8ee413587fed710fc0dba98..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/AbstractLinkedResourceDeserializer.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URLDecoder;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Objects;
-import java.util.Set;
-
-import org.apache.commons.lang3.StringUtils;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.deser.ContextualDeserializer;
-import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-
-import de.ozgcloud.common.datatype.StringBasedValue;
-import lombok.Getter;
-
-abstract class AbstractLinkedResourceDeserializer extends StdDeserializer<Object> implements ContextualDeserializer {
-
-	private static final long serialVersionUID = 1L;
-
-	@Getter
-	private BeanProperty beanProperty;
-
-	@Getter
-	private final JavaType targetType;
-
-	protected AbstractLinkedResourceDeserializer() {
-		super(Object.class);
-		targetType = null;
-	}
-
-	protected AbstractLinkedResourceDeserializer(BeanProperty beanProperty) {
-		super(Object.class);
-		this.beanProperty = beanProperty;
-		this.targetType = beanProperty.getType();
-	}
-
-	@Override
-	public Object deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException {
-		if (jsonParser.isExpectedStartArrayToken()) {
-			Collection<Object> idList = targetType.getRawClass().isAssignableFrom(Set.class) ? new HashSet<>() : new ArrayList<>();
-
-			while (!jsonParser.nextToken().isStructEnd()) {
-				idList.add(extractId(jsonParser.getText()));
-			}
-			return idList;
-		} else {
-			return extractId(jsonParser.getText());
-		}
-	}
-
-	Object extractId(String url) {
-		Class<?> type;
-		if (targetType.isCollectionLikeType()) {
-			type = targetType.getContentType().getRawClass();
-		} else {
-			type = targetType.getRawClass();
-		}
-
-		if (String.class.isAssignableFrom(type)) {
-			return extractStringId(url);
-		}
-		if (Long.class.isAssignableFrom(type) || Long.TYPE.isAssignableFrom(type)) {
-			return extractLongId(url);
-		}
-		if (StringBasedValue.class.isAssignableFrom(type)) {
-			return extractStringBasedValue(type, url);
-		}
-		return buildByBuilder(url);
-	}
-
-	abstract Object buildByBuilder(String url);
-
-	public static Long extractLongId(String uri) {
-		var trimedUri = StringUtils.trimToNull(uri);
-		if (Objects.isNull(trimedUri)) {
-			return null;
-		}
-		return Long.parseLong(URLDecoder.decode(trimedUri.substring(trimedUri.lastIndexOf('/') + 1), StandardCharsets.UTF_8));
-	}
-
-	private StringBasedValue extractStringBasedValue(Class<?> type, String url) {
-		String value = extractStringId(url);
-		Method fromMethod;
-		try {
-			fromMethod = type.getMethod("from", String.class);
-		} catch (NoSuchMethodException e) {
-			throw new IllegalStateException(
-					String.format("Cannot generate Id from type '%s'. Missing 'from' Method.", targetType.getRawClass().getSimpleName()));
-		}
-		try {
-			return (StringBasedValue) fromMethod.invoke(null, value);
-		} catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
-			throw new IllegalStateException(
-					String.format("Cannot generate Id from type '%s'. Error calling 'from' Method.", targetType.getRawClass().getSimpleName()),
-					e);
-		}
-	}
-
-	public static String extractStringId(String url) {
-		return URLDecoder.decode(url.substring(url.lastIndexOf('/') + 1), StandardCharsets.UTF_8);
-	}
-}
diff --git a/src/main/java/de/ozgcloud/admin/common/AbstractLinkedResourceSerializer.java b/src/main/java/de/ozgcloud/admin/common/AbstractLinkedResourceSerializer.java
deleted file mode 100644
index aff16f22a29698cf591680353e4bf07800810d04..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/AbstractLinkedResourceSerializer.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import java.io.IOException;
-import java.util.Collection;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.ser.ContextualSerializer;
-
-import de.ozgcloud.common.errorhandling.TechnicalException;
-
-abstract class AbstractLinkedResourceSerializer extends JsonSerializer<Object> implements ContextualSerializer {
-	@Override
-	public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
-
-		if (value instanceof Collection) {
-			gen.writeStartArray();
-			((Collection<?>) value).forEach(val -> writeObject(gen, buildLink(val)));
-			gen.writeEndArray();
-		} else {
-			writeObject(gen, buildLink(value));
-		}
-	}
-
-	abstract String buildLink(Object id);
-
-	abstract IdExtractor<Object> getExtractor();
-
-	void writeObject(JsonGenerator gen, Object value) {
-		try {
-			gen.writeObject(value);
-		} catch (IOException e) {
-			throw new TechnicalException("Error writing String to json", e);
-		}
-	}
-}
diff --git a/src/main/java/de/ozgcloud/admin/common/IdBuilder.java b/src/main/java/de/ozgcloud/admin/common/IdBuilder.java
deleted file mode 100644
index f893795312adcde8c17d1c0da58cf1eaa4e5cf26..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/IdBuilder.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import com.fasterxml.jackson.databind.BeanProperty;
-
-import lombok.NoArgsConstructor;
-
-@NoArgsConstructor
-class IdBuilder implements ObjectBuilder<Object> {
-
-	@Override
-	public Object build(Object id) {
-		return id;
-	}
-
-	@Override
-	public ObjectBuilder<Object> constructContextAware(BeanProperty property) {
-		return new IdBuilder();
-	}
-}
diff --git a/src/main/java/de/ozgcloud/admin/common/IdExtractor.java b/src/main/java/de/ozgcloud/admin/common/IdExtractor.java
deleted file mode 100644
index 658b06586cd447274ef701dc8942af43300a814a..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/IdExtractor.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-@FunctionalInterface
-public interface IdExtractor<T> {
-	String extractId(T object);
-}
\ No newline at end of file
diff --git a/src/main/java/de/ozgcloud/admin/common/LinkedResource.java b/src/main/java/de/ozgcloud/admin/common/LinkedResource.java
deleted file mode 100644
index 4798f516bf52910ab2641ecba167540622dfb101..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/LinkedResource.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.springframework.core.annotation.AliasFor;
-
-import com.fasterxml.jackson.annotation.JacksonAnnotationsInside;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.FIELD)
-@Inherited
-
-@JacksonAnnotationsInside
-@JsonSerialize(using = LinkedResourceSerializer.class)
-@JsonDeserialize(using = LinkedResourceDeserializer.class)
-public @interface LinkedResource {
-
-	Class<?> controllerClass();
-
-	Class<? extends IdExtractor<Object>> extractor() default ToStringExtractor.class;
-
-	@AliasFor(annotation = JsonDeserialize.class, attribute = "builder")
-	Class<? extends ObjectBuilder<Object>> builder() default IdBuilder.class;
-}
\ No newline at end of file
diff --git a/src/main/java/de/ozgcloud/admin/common/LinkedResourceDeserializer.java b/src/main/java/de/ozgcloud/admin/common/LinkedResourceDeserializer.java
deleted file mode 100644
index 7130e16af20c1f774e599b3096bced026c1b7bbe..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/LinkedResourceDeserializer.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.commons.lang3.reflect.ConstructorUtils;
-
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-
-import de.ozgcloud.common.errorhandling.TechnicalException;
-
-public class LinkedResourceDeserializer extends AbstractLinkedResourceDeserializer {
-
-	private static final long serialVersionUID = 1L;
-
-	private LinkedResource annotation;
-
-	protected LinkedResourceDeserializer() {
-		super();
-	}
-
-	protected LinkedResourceDeserializer(BeanProperty beanProperty) {
-		super(beanProperty);
-		this.annotation = beanProperty.getAnnotation(LinkedResource.class);
-	}
-
-	@Override
-	Object buildByBuilder(String url) {
-		ObjectBuilder<?> builder;
-		try {
-			builder = ConstructorUtils.invokeConstructor(annotation.builder()).constructContextAware(getBeanProperty());
-		} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | InstantiationException e) {
-			throw new TechnicalException("Error instanciating Builder.", e);
-		}
-		return builder.build(extractStringId(url));
-	}
-
-	@Override
-	public JsonDeserializer<?> createContextual(DeserializationContext ctxt, BeanProperty property) {
-		return new LinkedResourceDeserializer(property);
-	}
-
-}
diff --git a/src/main/java/de/ozgcloud/admin/common/LinkedResourceSerializer.java b/src/main/java/de/ozgcloud/admin/common/LinkedResourceSerializer.java
deleted file mode 100644
index 28a098c82185730476c0f85f4eb299a7bdd3ed13..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/LinkedResourceSerializer.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.apache.commons.lang3.reflect.ConstructorUtils;
-
-import com.fasterxml.jackson.databind.BeanProperty;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-
-import de.ozgcloud.common.errorhandling.TechnicalException;
-import lombok.NoArgsConstructor;
-
-@NoArgsConstructor
-public class LinkedResourceSerializer extends AbstractLinkedResourceSerializer {
-
-	private LinkedResource annotation;
-
-	private LinkedResourceSerializer(LinkedResource annotation) {
-		this.annotation = annotation;
-	}
-
-	@Override
-	public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) {
-		return new LinkedResourceSerializer(property.getAnnotation(LinkedResource.class));
-	}
-
-	@Override
-	String buildLink(Object id) {
-		return linkTo(annotation.controllerClass()).slash(getExtractor().extractId(id)).toString();
-	}
-
-	@Override
-	IdExtractor<Object> getExtractor() {
-		try {
-			return ConstructorUtils.invokeConstructor(annotation.extractor());
-		} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | InstantiationException e) {
-			throw new TechnicalException("Error instanciating IdExtractor", e);
-		}
-	}
-}
diff --git a/src/main/java/de/ozgcloud/admin/common/ModelBuilder.java b/src/main/java/de/ozgcloud/admin/common/ModelBuilder.java
deleted file mode 100644
index cd90619981aa59db2f29a1f158c76000773aacb2..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/ModelBuilder.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.BooleanSupplier;
-import java.util.function.Function;
-import java.util.function.Predicate;
-import java.util.function.Supplier;
-import java.util.function.UnaryOperator;
-import java.util.stream.Collectors;
-
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.reflect.FieldUtils;
-import org.springframework.hateoas.EntityModel;
-import org.springframework.hateoas.Link;
-import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder;
-
-import lombok.RequiredArgsConstructor;
-import lombok.extern.log4j.Log4j2;
-
-@Log4j2
-public class ModelBuilder<T> {
-
-	private static final Map<Class<?>, Map<Object, List<Field>>> ANNOTATED_FIELDS_BY_ANNOTATION = new ConcurrentHashMap<>();
-
-	private final T entity;
-	private final EntityModel<T> model;
-
-	private final List<Link> links = new LinkedList<>();
-	private final List<Function<EntityModel<T>, EntityModel<T>>> mapper = new LinkedList<>();
-
-	private ModelBuilder(T entity) {
-		this.entity = entity;
-		this.model = null;
-	}
-
-	private ModelBuilder(EntityModel<T> model) {
-		this.entity = null;
-		this.model = model;
-	}
-
-	public static <T> ModelBuilder<T> fromEntity(T entity) {
-		return new ModelBuilder<>(entity);
-	}
-
-	public static <T> ModelBuilder<T> fromModel(EntityModel<T> model) {
-		return new ModelBuilder<>(model);
-	}
-
-	public ModelBuilder<T> addLink(Link link) {
-		links.add(link);
-		return this;
-	}
-
-	public ModelBuilder<T> addLink(Optional<Link> link) {
-		link.ifPresent(links::add);
-		return this;
-	}
-
-	public ModelBuilder<T> addLinks(Link... links) {
-		this.links.addAll(Arrays.asList(links));
-		return this;
-	}
-
-	public ModelBuilder<T> addLinks(Collection<Link> links) {
-		this.links.addAll(links);
-		return this;
-	}
-
-	public ConditionalLinkAdder ifMatch(Predicate<T> predicate) {
-		return new ConditionalLinkAdder(predicate.test(Objects.isNull(entity) ? model.getContent() : entity));
-	}
-
-	public ConditionalLinkAdder ifMatch(BooleanSupplier guard) {
-		return new ConditionalLinkAdder(guard.getAsBoolean());
-	}
-
-	public ModelBuilder<T> map(UnaryOperator<EntityModel<T>> mapper) {
-		this.mapper.add(mapper);
-		return this;
-	}
-
-	public EntityModel<T> buildModel() {
-		var filteredLinks = links.stream().filter(Objects::nonNull).collect(Collectors.toSet());
-
-		EntityModel<T> buildedModel = Objects.isNull(model) ? EntityModel.of(entity) : model;
-		buildedModel = buildedModel.add(filteredLinks);
-
-		addLinkByLinkedResourceAnnotationIfMissing(buildedModel);
-
-		return applyMapper(buildedModel);
-	}
-
-	private EntityModel<T> applyMapper(EntityModel<T> resource) {
-		Iterator<Function<EntityModel<T>, EntityModel<T>>> i = mapper.iterator();
-		EntityModel<T> result = resource;
-		while (i.hasNext()) {
-			result = i.next().apply(result);
-		}
-		return result;
-	}
-
-	private void addLinkByLinkedResourceAnnotationIfMissing(EntityModel<T> resource) {
-		getFields(LinkedResource.class).stream()
-				.filter(field -> shouldAddLink(resource, field))
-				.forEach(field -> handleLinkedResourceField(resource, field));
-	}
-
-	private void handleLinkedResourceField(EntityModel<T> resource, Field field) {
-		getEntityFieldValue(field).map(Object::toString).filter(StringUtils::isNotBlank).ifPresent(val -> resource
-				.add(WebMvcLinkBuilder.linkTo(field.getAnnotation(LinkedResource.class).controllerClass()).slash(val)
-						.withRel(sanitizeName(field.getName()))));
-	}
-
-	private boolean shouldAddLink(EntityModel<T> resource, Field field) {
-		return !(field.getType().isArray() || Collection.class.isAssignableFrom(field.getType()) || resource.hasLink(sanitizeName(field.getName())));
-	}
-
-	private List<Field> getFields(Class<? extends Annotation> annotationClass) {
-		var fields = Optional.ofNullable(ANNOTATED_FIELDS_BY_ANNOTATION.get(getEntity().getClass()))
-				.map(fieldsByAnnotation -> fieldsByAnnotation.get(annotationClass))
-				.orElseGet(Collections::emptyList);
-
-		if (CollectionUtils.isEmpty(fields)) {
-			fields = FieldUtils.getFieldsListWithAnnotation(getEntity().getClass(), annotationClass);
-
-			updateFields(annotationClass, fields);
-		}
-		return fields;
-	}
-
-	private void updateFields(Class<? extends Annotation> annotationClass, List<Field> fields) {
-		var annotationMap = Optional.ofNullable(ANNOTATED_FIELDS_BY_ANNOTATION.get(getEntity().getClass())).orElseGet(HashMap::new);
-		annotationMap.put(annotationClass, fields);
-
-		ANNOTATED_FIELDS_BY_ANNOTATION.put(annotationClass, annotationMap);
-	}
-
-	private String sanitizeName(String fieldName) {
-		if (fieldName.endsWith("Id")) {
-			return fieldName.substring(0, fieldName.indexOf("Id"));
-		}
-		return fieldName;
-	}
-
-	private Optional<Object> getEntityFieldValue(Field field) {
-		try {
-			field.setAccessible(true);
-			Optional<Object> value = Optional.ofNullable(field.get(getEntity()));
-			field.setAccessible(false);
-			return value;
-		} catch (IllegalArgumentException | IllegalAccessException e) {
-			LOG.warn("Cannot access field value of LinkedResource field.", e);
-		}
-		return Optional.empty();
-	}
-
-	private T getEntity() {
-		return Optional.ofNullable(entity == null ? model.getContent() : entity)
-				.orElseThrow(() -> new IllegalStateException("Entity must not null for ModelBuilding"));
-	}
-
-	@RequiredArgsConstructor
-	public class ConditionalLinkAdder {
-
-		public final boolean conditionFulfilled;
-
-		public ModelBuilder<T> addLink(Supplier<Link> linkSupplier) {
-			if (conditionFulfilled) {
-				addLink(linkSupplier.get());
-			}
-			return ModelBuilder.this;
-		}
-
-		public ModelBuilder<T> addLinkIfPresent(Supplier<Optional<Link>> linkSupplier) {
-			if (conditionFulfilled) {
-				addLink(linkSupplier.get());
-			}
-			return ModelBuilder.this;
-		}
-
-		public ModelBuilder<T> addLink(Function<T, Link> linkBuilder) {
-			if (conditionFulfilled) {
-				addLink(linkBuilder.apply(getEntity()));
-			}
-			return ModelBuilder.this;
-		}
-
-		public ModelBuilder<T> addLink(Link link) {
-			if (conditionFulfilled) {
-				links.add(link);
-			}
-			return ModelBuilder.this;
-		}
-
-		public ModelBuilder<T> addLink(Optional<Link> link) {
-			if (conditionFulfilled) {
-				link.ifPresent(links::add);
-			}
-			return ModelBuilder.this;
-		}
-
-		public ModelBuilder<T> addLinks(Link... links) {
-			if (conditionFulfilled) {
-				ModelBuilder.this.links.addAll(Arrays.asList(links));
-			}
-			return ModelBuilder.this;
-		}
-
-		@SafeVarargs
-		public final ModelBuilder<T> addLinks(Supplier<Link>... linkSuppliers) {
-			if (conditionFulfilled) {
-				for (int i = 0; i < linkSuppliers.length; i++) {
-					ModelBuilder.this.links.add(linkSuppliers[i].get());
-				}
-			}
-			return ModelBuilder.this;
-		}
-
-		public final ModelBuilder<T> addLinks(Supplier<Collection<Link>> linksSupplier) {
-			if (conditionFulfilled) {
-				linksSupplier.get().forEach(ModelBuilder.this.links::add);
-			}
-
-			return ModelBuilder.this;
-		}
-
-	}
-}
\ No newline at end of file
diff --git a/src/main/java/de/ozgcloud/admin/common/ObjectBuilder.java b/src/main/java/de/ozgcloud/admin/common/ObjectBuilder.java
deleted file mode 100644
index a08385af64361f8e178d9a03451f81853eeda9d8..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/ObjectBuilder.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import com.fasterxml.jackson.databind.BeanProperty;
-
-public interface ObjectBuilder<T> {
-
-	T build(Object id);
-
-	ObjectBuilder<T> constructContextAware(BeanProperty property);
-}
diff --git a/src/main/java/de/ozgcloud/admin/common/ToStringExtractor.java b/src/main/java/de/ozgcloud/admin/common/ToStringExtractor.java
deleted file mode 100644
index dade3573176baac48e7f6df83e0c45a4c1cb9389..0000000000000000000000000000000000000000
--- a/src/main/java/de/ozgcloud/admin/common/ToStringExtractor.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import lombok.NoArgsConstructor;
-
-@NoArgsConstructor
-class ToStringExtractor implements IdExtractor<Object> {
-
-	@Override
-	public String extractId(Object object) {
-		return object.toString();
-	}
-}
diff --git a/src/test/java/de/ozgcloud/admin/common/CollectionModelBuilderTest.java b/src/test/java/de/ozgcloud/admin/common/CollectionModelBuilderTest.java
deleted file mode 100644
index 8327c18845e9ead36fc76bfff226334adac98881..0000000000000000000000000000000000000000
--- a/src/test/java/de/ozgcloud/admin/common/CollectionModelBuilderTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import static org.assertj.core.api.Assertions.*;
-
-import java.util.List;
-import java.util.stream.Stream;
-
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.springframework.hateoas.Link;
-
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheit;
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
-
-class CollectionModelBuilderTest {
-
-	private final String HREF = "http://test";
-	private final String REL = "rel";
-
-	@Nested
-	class TestBuildModel {
-
-		@Test
-		void shouldBuildModel() {
-			var vorgang = OrganisationsEinheitTestFactory.create();
-
-			var model = CollectionModelBuilder.fromEntities(List.of(vorgang)).buildModel();
-
-			assertThat(model.getContent()).hasSize(1).first().usingRecursiveComparison().isEqualTo(vorgang);
-		}
-	}
-
-	@Nested
-	class TestAddLink {
-
-		@Test
-		void shouldAddLink() {
-			var model = CollectionModelBuilder.fromEntities(List.of()).addLink(Link.of(HREF, REL)).buildModel();
-
-			assertThat(model.getLinks()).hasSize(1).first().extracting(Link::getHref, link -> link.getRel().value()).containsExactly(HREF, REL);
-		}
-	}
-
-	@Nested
-	class TestIfMatch {
-
-		@Nested
-		class TestWithBooleanSupplier {
-
-			@Test
-			void shouldAddLink() {
-				var model = CollectionModelBuilder.fromEntities(List.of()).ifMatch(() -> true).addLink(Link.of(HREF, REL)).buildModel();
-
-				assertThat(model.getLinks()).hasSize(1).first().extracting(Link::getHref, link -> link.getRel().value()).containsExactly(HREF, REL);
-			}
-
-			@Test
-			void shouldNotAddLink() {
-				var model = CollectionModelBuilder.fromEntities(List.of()).ifMatch(() -> false).addLink(Link.of(HREF, REL)).buildModel();
-
-				assertThat(model.getLinks()).isEmpty();
-			}
-		}
-
-		@Nested
-		class TestWithPredicate {
-
-			private final Stream<OrganisationsEinheit> wiedervorlageStream = Stream.of(OrganisationsEinheitTestFactory.create());
-
-			@Test
-			void shouldAddLink() {
-				var model = CollectionModelBuilder.fromEntities(wiedervorlageStream)
-						.ifMatch(wiedervorlagen -> true)
-						.addLink(Link.of(HREF, REL))
-						.buildModel();
-
-				assertThat(model.getLinks()).hasSize(1).first().extracting(Link::getHref, link -> link.getRel().value()).containsExactly(HREF, REL);
-			}
-
-			@Test
-			void shouldNotAddLink() {
-				var model = CollectionModelBuilder.fromEntities(wiedervorlageStream)
-						.ifMatch(wiedervorlagen -> false)
-						.addLink(Link.of(HREF, REL))
-						.buildModel();
-
-				assertThat(model.getLinks()).isEmpty();
-			}
-		}
-	}
-
-}
\ No newline at end of file
diff --git a/src/test/java/de/ozgcloud/admin/common/EntityModelTestFactory.java b/src/test/java/de/ozgcloud/admin/common/EntityModelTestFactory.java
deleted file mode 100644
index 1f01a94247938090c4e85f0d9c96d3ec399aeb6c..0000000000000000000000000000000000000000
--- a/src/test/java/de/ozgcloud/admin/common/EntityModelTestFactory.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import org.springframework.hateoas.EntityModel;
-
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheit;
-import lombok.NoArgsConstructor;
-
-public class EntityModelTestFactory {
-
-	public static final NullableEntityModel NULLABLE = createNullable();
-
-	private static NullableEntityModel createNullable() {
-		return new NullableEntityModel();
-	}
-
-	@NoArgsConstructor
-	private static class NullableEntityModel extends EntityModel<OrganisationsEinheit> {
-
-	}
-}
diff --git a/src/test/java/de/ozgcloud/admin/common/IdBuilderTest.java b/src/test/java/de/ozgcloud/admin/common/IdBuilderTest.java
deleted file mode 100644
index 608fe7e6e3607c04bdcedca85b29238bd840db66..0000000000000000000000000000000000000000
--- a/src/test/java/de/ozgcloud/admin/common/IdBuilderTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import static org.assertj.core.api.Assertions.*;
-import static org.mockito.Mockito.*;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-
-import com.fasterxml.jackson.databind.BeanProperty;
-
-class IdBuilderTest {
-
-	@DisplayName("Test building ID when deserializing linked resources")
-	@Nested
-	class TestBuilingId {
-		private static final String ID = "id";
-
-		@Test
-		void shouldBuildId() {
-			IdBuilder idBuilder = new IdBuilder();
-
-			var idObject = idBuilder.build(ID);
-
-			assertThat(idObject).isInstanceOf(Object.class).asString().isEqualTo(ID);
-		}
-
-		@Test
-		void shouldCreateObjectBuilder() {
-			BeanProperty property = mock(BeanProperty.class);
-			ObjectBuilder<Object> idBuilder = new IdBuilder().constructContextAware(property);
-
-			assertThat(idBuilder).isNotNull();
-		}
-	}
-}
diff --git a/src/test/java/de/ozgcloud/admin/common/LinkedResourceDeserializerTest.java b/src/test/java/de/ozgcloud/admin/common/LinkedResourceDeserializerTest.java
deleted file mode 100644
index b50116770c539a5abba0108c8f82efe81b0763ec..0000000000000000000000000000000000000000
--- a/src/test/java/de/ozgcloud/admin/common/LinkedResourceDeserializerTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import static org.assertj.core.api.Assertions.*;
-
-import java.io.IOException;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import de.ozgcloud.admin.common.user.TestId;
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
-
-class LinkedResourceDeserializerTest {
-	private static final String TEST_JSON = "{\"id\":\"/api/vorgangs/" + OrganisationsEinheitTestFactory.ID + "\"}";
-
-	@DisplayName("Test the deserilization of linked resource json")
-	@Nested
-	class TestDeserialization {
-		@Test
-		void shouldDeserialize() throws IOException {
-			LinkedResourceTestObject res = new ObjectMapper().readValue(TEST_JSON.getBytes(), LinkedResourceTestObject.class);
-
-			assertThat(res).hasFieldOrPropertyWithValue("id", TestId.from(OrganisationsEinheitTestFactory.ID));
-		}
-
-	}
-
-}
diff --git a/src/test/java/de/ozgcloud/admin/common/LinkedResourceSerializerTest.java b/src/test/java/de/ozgcloud/admin/common/LinkedResourceSerializerTest.java
deleted file mode 100644
index 05764d09b88e72edd2032e861bbc58cd863a36c9..0000000000000000000000000000000000000000
--- a/src/test/java/de/ozgcloud/admin/common/LinkedResourceSerializerTest.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import static org.assertj.core.api.Assertions.*;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import de.ozgcloud.admin.common.user.TestId;
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory;
-
-class LinkedResourceSerializerTest {
-
-	@DisplayName("Test the json serialization of linked resource annotations")
-	@Nested
-	class TestSerialization {
-		@Test
-		void shouldSerialize() throws JsonProcessingException {
-			var testObj = new LinkedResourceTestObject(TestId.from(OrganisationsEinheitTestFactory.ID));
-
-			String serialized = new ObjectMapper().writeValueAsString(testObj);
-
-			assertThat(serialized).isEqualTo("{\"id\":\"/api/organisationseinheits/" + OrganisationsEinheitTestFactory.ID + "\"}");
-		}
-
-	}
-}
diff --git a/src/test/java/de/ozgcloud/admin/common/LinkedResourceTestObject.java b/src/test/java/de/ozgcloud/admin/common/LinkedResourceTestObject.java
deleted file mode 100644
index d30ab26ef5568705572702d1e5401c215a5b40cb..0000000000000000000000000000000000000000
--- a/src/test/java/de/ozgcloud/admin/common/LinkedResourceTestObject.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import de.ozgcloud.admin.common.user.TestId;
-import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitController;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-@Getter
-@AllArgsConstructor
-@NoArgsConstructor
-class LinkedResourceTestObject {
-	@LinkedResource(controllerClass = OrganisationsEinheitController.class)
-	private TestId id;
-}
diff --git a/src/test/java/de/ozgcloud/admin/common/ModelBuilderTest.java b/src/test/java/de/ozgcloud/admin/common/ModelBuilderTest.java
deleted file mode 100644
index 74c8a11de179d56b34bfb52fc47108c5cd491dc6..0000000000000000000000000000000000000000
--- a/src/test/java/de/ozgcloud/admin/common/ModelBuilderTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
- * Ministerpräsidenten des Landes Schleswig-Holstein
- * Staatskanzlei
- * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
- *
- * Lizenziert unter der EUPL, Version 1.2 oder - sobald
- * diese von der Europäischen Kommission genehmigt wurden -
- * Folgeversionen der EUPL ("Lizenz");
- * Sie dürfen dieses Werk ausschließlich gemäß
- * dieser Lizenz nutzen.
- * Eine Kopie der Lizenz finden Sie hier:
- *
- * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
- *
- * Sofern nicht durch anwendbare Rechtsvorschriften
- * gefordert oder in schriftlicher Form vereinbart, wird
- * die unter der Lizenz verbreitete Software "so wie sie
- * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
- * ausdrücklich oder stillschweigend - verbreitet.
- * Die sprachspezifischen Genehmigungen und Beschränkungen
- * unter der Lizenz sind dem Lizenztext zu entnehmen.
- */
-package de.ozgcloud.admin.common;
-
-import static org.assertj.core.api.Assertions.*;
-
-import java.util.UUID;
-
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Nested;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.NullAndEmptySource;
-import org.mockito.Mock;
-import org.springframework.context.ApplicationContext;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import lombok.Builder;
-
-class ModelBuilderTest {
-
-	@DisplayName("Add link by annotation if missing")
-	@Nested
-	class TestAddLinkByAnnotationIfMissing {
-
-		private static final String USER_MANAGER_URL = "http://localhost";
-		private static final String USER_MANAGER_PROFILE_TEMPLATE = "/api/profile/%s";
-
-		@Mock
-		private ApplicationContext context;
-
-		private TestEntity entity = TestEntityTestFactory.create();
-
-		@Test
-		void shouldHaveAddLinkByLinkedResource() {
-			var model = ModelBuilder.fromEntity(entity).buildModel();
-
-			assertThat(model.getLink(TestController.FILE_REL).get().getHref()).isEqualTo(TestController.PATH + "/" + TestEntityTestFactory.FILE);
-		}
-
-		@ParameterizedTest
-		@NullAndEmptySource
-		void shouldNotAddLinkByLinkedRessourceIfFieldValueIsNotSet(String fileId) {
-			var model = ModelBuilder.fromEntity(TestEntityTestFactory.createBuilder().file(fileId).build()).buildModel();
-
-			assertThat(model.getLink(TestController.FILE_REL)).isEmpty();
-		}
-	}
-}
-
-@Builder
-class TestEntity {
-
-	@LinkedResource(controllerClass = TestController.class)
-	private String file;
-}
-
-@RequestMapping(TestController.PATH)
-class TestController {
-
-	static final String PATH = "/api/test";
-
-	static final String USER_REL = "user";
-	static final String FILE_REL = "file";
-
-}
-
-class TestEntityTestFactory {
-
-	static final String USER = UUID.randomUUID().toString();
-	static final String FILE = UUID.randomUUID().toString();
-
-	public static TestEntity create() {
-		return createBuilder().build();
-	}
-
-	public static TestEntity.TestEntityBuilder createBuilder() {
-		return TestEntity.builder()
-				.file(FILE);
-	}
-}