From d1a70509b73343e2cc4fe4e738eebe9518879f0d Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Wed, 9 Apr 2025 19:39:33 -0700
Subject: [PATCH] submissions: implement map checks

---
 pkg/model/nats.go          | 11 +++++++++++
 pkg/service/mapfixes.go    | 17 ++++++++++++++++-
 pkg/service/submissions.go | 17 ++++++++++++++++-
 3 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/pkg/model/nats.go b/pkg/model/nats.go
index 7a69450..0808a89 100644
--- a/pkg/model/nats.go
+++ b/pkg/model/nats.go
@@ -17,6 +17,17 @@ type CreateMapfixRequest struct {
 	TargetAssetID uint64
 }
 
+
+type CheckSubmissionRequest struct{
+	SubmissionID int64
+	ModelID      uint64
+}
+
+type CheckMapfixRequest struct{
+	MapfixID int64
+	ModelID  uint64
+}
+
 type ValidateSubmissionRequest struct {
 	// submission_id is passed back in the response message
 	SubmissionID       int64
diff --git a/pkg/service/mapfixes.go b/pkg/service/mapfixes.go
index 18207f2..20529fd 100644
--- a/pkg/service/mapfixes.go
+++ b/pkg/service/mapfixes.go
@@ -490,7 +490,7 @@ func (svc *Service) ActionMapfixTriggerSubmit(ctx context.Context, params api.Ac
 	}
 
 	// transaction
-	target_status := model.MapfixStatusSubmitted
+	target_status := model.MapfixStatusSubmitting
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
 	err = svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusUnderConstruction, model.MapfixStatusChangesRequested}, smap)
@@ -498,6 +498,21 @@ func (svc *Service) ActionMapfixTriggerSubmit(ctx context.Context, params api.Ac
 		return err
 	}
 
+	validate_request := model.CheckMapfixRequest{
+		MapfixID: mapfix.ID,
+		ModelID:  mapfix.AssetID,
+	}
+
+	j, err := json.Marshal(validate_request)
+	if err != nil {
+		return err
+	}
+
+	_, err = svc.Nats.Publish("maptest.mapfixes.check", []byte(j))
+	if err != nil {
+		return err
+	}
+
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}
diff --git a/pkg/service/submissions.go b/pkg/service/submissions.go
index c81c24a..3487fac 100644
--- a/pkg/service/submissions.go
+++ b/pkg/service/submissions.go
@@ -511,7 +511,7 @@ func (svc *Service) ActionSubmissionTriggerSubmit(ctx context.Context, params ap
 	}
 
 	// transaction
-	target_status := model.SubmissionStatusSubmitted
+	target_status := model.SubmissionStatusSubmitting
 	smap := datastore.Optional()
 	smap.Add("status_id", target_status)
 	err = svc.DB.Submissions().IfStatusThenUpdate(ctx, params.SubmissionID, []model.SubmissionStatus{model.SubmissionStatusUnderConstruction, model.SubmissionStatusChangesRequested}, smap)
@@ -519,6 +519,21 @@ func (svc *Service) ActionSubmissionTriggerSubmit(ctx context.Context, params ap
 		return err
 	}
 
+	validate_request := model.CheckSubmissionRequest{
+		SubmissionID: submission.ID,
+		ModelID:      submission.AssetID,
+	}
+
+	j, err := json.Marshal(validate_request)
+	if err != nil {
+		return err
+	}
+
+	_, err = svc.Nats.Publish("maptest.submissions.check", []byte(j))
+	if err != nil {
+		return err
+	}
+
 	event_data := model.AuditEventDataAction{
 		TargetStatus: uint32(target_status),
 	}