From b472af60205e6fce10eaa224c83a324cd162d690 Mon Sep 17 00:00:00 2001
From: Josh Burman <jburman@yas.getyardstick.com>
Date: Tue, 14 Sep 2021 11:46:51 -0400
Subject: [PATCH] some model name changing, and constains model improvement

---
 app/main.py                      | 2 +-
 app/models/constraint.py         | 7 +++----
 app/models/item.py               | 4 ++--
 app/models/metadata.py           | 8 --------
 app/models/objective_function.py | 1 +
 app/models/solver_run.py         | 3 +--
 6 files changed, 8 insertions(+), 17 deletions(-)
 delete mode 100644 app/models/metadata.py

diff --git a/app/main.py b/app/main.py
index 8ec950c..1fad27b 100644
--- a/app/main.py
+++ b/app/main.py
@@ -36,4 +36,4 @@ async def solve(solver_run: SolverRun):
       items=[item.id for item in solver_run.items]
     )]
   )
-  return response
+  return solver_run
diff --git a/app/models/constraint.py b/app/models/constraint.py
index df98e20..84eb1b2 100644
--- a/app/models/constraint.py
+++ b/app/models/constraint.py
@@ -1,10 +1,9 @@
 from pydantic import BaseModel
 from typing import Optional
 
+from models.attribute import Attribute
+
 class Constraint(BaseModel):
-  key: str
-  value: str
-  field_id: Optional[int]
-  option_id: Optional[int]
+  reference_attribute: Attribute
   minimum: int
   maximum: int
diff --git a/app/models/item.py b/app/models/item.py
index ede564b..9a6f9d7 100644
--- a/app/models/item.py
+++ b/app/models/item.py
@@ -1,8 +1,8 @@
 from pydantic import BaseModel
 from typing import List
 
-from models.metadata import MetaData
+from models.attribute import Attribute
 
 class Item(BaseModel):
   id: int
-  metadata: List[MetaData]
+  attribute: List[Attribute]
diff --git a/app/models/metadata.py b/app/models/metadata.py
deleted file mode 100644
index 34866ca..0000000
--- a/app/models/metadata.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from pydantic import BaseModel
-from typing import Optional
-
-class MetaData(BaseModel):
-  key: str
-  value: str
-  field_id: Optional[int]
-  option_id: Optional[int]
diff --git a/app/models/objective_function.py b/app/models/objective_function.py
index 05fa461..0c7835d 100644
--- a/app/models/objective_function.py
+++ b/app/models/objective_function.py
@@ -9,4 +9,5 @@ class ObjectiveFunction(BaseModel):
   # likely with models representing each objective function type
   tif_targets: List[Target]
   tcc_targets: List[Target]
+  objective: "minimize"
   weight: Dict = {'tif': 1, 'tcc': 1}
diff --git a/app/models/solver_run.py b/app/models/solver_run.py
index 43b223c..5dea7f0 100644
--- a/app/models/solver_run.py
+++ b/app/models/solver_run.py
@@ -8,11 +8,10 @@ from models.objective_function import ObjectiveFunction
 from models.advanced_options import AdvancedOptions
 
 class SolverRun(BaseModel):
-  token: str
   items: List[Item]
   constraints: List[Constraint]
   irt_model: IRTModel
   objective_fuction: ObjectiveFunction
   total_form_items: int
-  advanced_options: Optional[List[AdvancedOptions]]
+  advanced_options: Optional[AdvancedOptions]
   engine: str