diff --git a/SAS/LSMR/src/lsmr/lsmrapp/models/specification.py b/SAS/LSMR/src/lsmr/lsmrapp/models/specification.py
index d35948aed892b833d801297e4e5d12a6b29a200a..13d95ceb4a94fa58f649e6443cddb22e28eac303 100644
--- a/SAS/LSMR/src/lsmr/lsmrapp/models/specification.py
+++ b/SAS/LSMR/src/lsmr/lsmrapp/models/specification.py
@@ -194,3 +194,30 @@ class Run(SystemDefinedCommon):
     do_cancel = BooleanField()
     template = ForeignKey(RunTemplate, on_delete=SET_NULL, null=True)
     blueprint = ForeignKey(RunBlueprint, related_name='related_runs', on_delete=CASCADE)
+
+
+class WorkRequestBlueprint(UserDefinedCommon):
+    # todo
+    pass
+
+
+class WorkRequest(SystemDefinedCommon):
+    # todo
+    pass
+
+
+class WorkRequestRelationBlueprint(UserDefinedCommon):
+    selection_doc = JSONField()
+    dataformat = CharField(max_length=30,
+                           choices=[(item.name, item.value) for item in DataformatChoice])
+    producer = ForeignKey(WorkRequestBlueprint, related_name='work_request_relation_blueprint_producer', on_delete=CASCADE)
+    consumer = ForeignKey(WorkRequestBlueprint, related_name='work_request_relation_blueprint_consumer', on_delete=CASCADE)
+
+class WorkRequestRelation(SystemDefinedCommon):
+    selection_doc = JSONField()
+    dataformat = CharField(max_length=30,
+                           choices=[(item.name, item.value) for item in DataformatChoice])
+    producer = ForeignKey(WorkRequest, related_name='work_request_relation_producer', on_delete=CASCADE)
+    consumer = ForeignKey(WorkRequest, related_name='work_request_relation_consumer', on_delete=CASCADE)
+
+