From 52e67bf5bb45d7d47b09b20df7044af6af1dc39a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrian=20Or=C5=82=C3=B3w?= <adrian.orlow@fishbrain.com>
Date: Tue, 24 Oct 2023 13:02:03 +0200
Subject: [PATCH] fix: models non consistent

---
 src/models/overviewImageLink.ts | 19 +++++++++++++++++++
 src/models/overviewImageView.ts | 20 ++------------------
 2 files changed, 21 insertions(+), 18 deletions(-)
 create mode 100644 src/models/overviewImageLink.ts

diff --git a/src/models/overviewImageLink.ts b/src/models/overviewImageLink.ts
new file mode 100644
index 00000000..7c31c710
--- /dev/null
+++ b/src/models/overviewImageLink.ts
@@ -0,0 +1,19 @@
+import { z } from 'zod';
+import { positionSchema } from './positionSchema';
+
+export const overviewImageLink = z.union([
+  z.object({
+    idObject: z.number(),
+    polygon: z.array(positionSchema),
+    imageLinkId: z.number(),
+    type: z.string(),
+  }),
+  z.object({
+    idObject: z.number(),
+    polygon: z.array(positionSchema),
+    zoomLevel: z.number(),
+    modelPoint: positionSchema,
+    modelLinkId: z.number(),
+    type: z.string(),
+  }),
+]);
diff --git a/src/models/overviewImageView.ts b/src/models/overviewImageView.ts
index 82587a89..1c1da19a 100644
--- a/src/models/overviewImageView.ts
+++ b/src/models/overviewImageView.ts
@@ -1,26 +1,10 @@
 import { z } from 'zod';
+import { overviewImageLink } from './overviewImageLink';
 
 export const overviewImageView = z.object({
   idObject: z.number(),
   filename: z.string(),
   width: z.number(),
   height: z.number(),
-  links: z.array(
-    z.union([
-      z.object({
-        idObject: z.number(),
-        polygon: z.array(z.object({ x: z.number(), y: z.number() })),
-        imageLinkId: z.number(),
-        type: z.string(),
-      }),
-      z.object({
-        idObject: z.number(),
-        polygon: z.array(z.object({ x: z.number(), y: z.number() })),
-        zoomLevel: z.number(),
-        modelPoint: z.object({ x: z.number(), y: z.number() }),
-        modelLinkId: z.number(),
-        type: z.string(),
-      }),
-    ]),
-  ),
+  links: z.array(overviewImageLink),
 });
-- 
GitLab