From 0ae2d11ab47dac1fb0620c85e14a873d472e3dfb Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 22 Nov 2024 18:58:31 +0100
Subject: [PATCH] OZG-6477 OZG-6439 Subtype for create collaboration command
 body

---
 .../CollaborationCommandBody.java             | 24 +++++++++++++++++++
 .../FachstelleCollaboration.java              |  7 ++++--
 .../OrganisationsEinheitCollaboration.java    |  7 ++++--
 .../alfa/common/command/CommandBody.java      |  4 ++--
 4 files changed, 36 insertions(+), 6 deletions(-)
 create mode 100644 alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationCommandBody.java

diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationCommandBody.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationCommandBody.java
new file mode 100644
index 0000000000..d6e68b1a0f
--- /dev/null
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/CollaborationCommandBody.java
@@ -0,0 +1,24 @@
+package de.ozgcloud.alfa.collaboration;
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import de.ozgcloud.alfa.common.LinkedResourceDeserializer;
+import de.ozgcloud.alfa.common.command.CommandBody;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+@Getter
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class CollaborationCommandBody implements CommandBody {
+
+	private String titel;
+	private String beschreibung;
+	private long collaborationLevel;
+
+	@JsonDeserialize(using = LinkedResourceDeserializer.class)
+	private String zustaendigeStelle;
+}
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/FachstelleCollaboration.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/FachstelleCollaboration.java
index 5a4dabfeef..bfb7417ba4 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/FachstelleCollaboration.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/FachstelleCollaboration.java
@@ -3,13 +3,16 @@ package de.ozgcloud.alfa.collaboration;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 import de.ozgcloud.alfa.common.LinkedResource;
-import de.ozgcloud.alfa.common.command.CommandBody;
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 
 @Getter
 @Builder
-public class FachstelleCollaboration implements CommandBody, Collaboration {
+@AllArgsConstructor
+@NoArgsConstructor
+public class FachstelleCollaboration implements Collaboration {
 
 	@JsonIgnore
 	private String vorgangId;
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitCollaboration.java b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitCollaboration.java
index 00e7b26902..793d2bf216 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitCollaboration.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/collaboration/OrganisationsEinheitCollaboration.java
@@ -3,13 +3,16 @@ package de.ozgcloud.alfa.collaboration;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 
 import de.ozgcloud.alfa.common.LinkedResource;
-import de.ozgcloud.alfa.common.command.CommandBody;
+import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 
 @Getter
 @Builder
-public class OrganisationsEinheitCollaboration implements CommandBody, Collaboration {
+@AllArgsConstructor
+@NoArgsConstructor
+public class OrganisationsEinheitCollaboration implements Collaboration {
 
 	@JsonIgnore
 	private String vorgangId;
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java
index 42f3ec714d..8b610f6bd4 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandBody.java
@@ -29,7 +29,7 @@ import com.fasterxml.jackson.annotation.JsonSubTypes.Type;
 import de.ozgcloud.alfa.aktenzeichen.AktenzeichenCommandBody;
 import de.ozgcloud.alfa.bescheid.Bescheid;
 import de.ozgcloud.alfa.bescheid.BescheidDocumentFromFileBody;
-import de.ozgcloud.alfa.collaboration.Collaboration;
+import de.ozgcloud.alfa.collaboration.CollaborationCommandBody;
 import de.ozgcloud.alfa.kommentar.Kommentar;
 import de.ozgcloud.alfa.loeschanforderung.DeleteLoeschAnforderung;
 import de.ozgcloud.alfa.loeschanforderung.LoeschAnforderung;
@@ -56,7 +56,7 @@ import de.ozgcloud.alfa.wiedervorlage.Wiedervorlage;
 		@Type(value = ProcessVorgangBody.class, name = "PROCESS_VORGANG"),
 		@Type(value = AktenzeichenCommandBody.class, name = "SET_AKTENZEICHEN"),
 		@Type(value = BescheidDocumentFromFileBody.class, name = "CREATE_BESCHEID_DOCUMENT_FROM_FILE"),
-		@Type(value = Collaboration.class, name = "CREATE_COLLABORATION_REQUEST")
+		@Type(value = CollaborationCommandBody.class, name = "CREATE_COLLABORATION_REQUEST")
 })
 public interface CommandBody {
 }
-- 
GitLab