From 8366b84d909a19cfdc1de7b13f0aede8875d8ee1 Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Mon, 31 Mar 2025 18:13:31 -0700
Subject: [PATCH] submissions: tweak script data model

---
 pkg/service/scripts.go          | 16 +++++++++++-----
 pkg/service_internal/scripts.go |  9 ++++++---
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/pkg/service/scripts.go b/pkg/service/scripts.go
index 2a67e84..931d607 100644
--- a/pkg/service/scripts.go
+++ b/pkg/service/scripts.go
@@ -32,7 +32,8 @@ func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*a
 		Name:         req.Name,
 		Hash:         int64(model.HashSource(req.Source)),
 		Source:       req.Source,
-		SubmissionID: req.SubmissionID.Or(0),
+		ResourceType: model.ResourceType(req.ResourceType),
+		ResourceID:   req.ResourceID.Or(0),
 	})
 	if err != nil {
 		return nil, err
@@ -82,7 +83,8 @@ func (svc *Service) ListScripts(ctx context.Context, params api.ListScriptsParam
 			ID:           item.ID,
 			Hash:         model.HashFormat(uint64(item.Hash)),
 			Source:       item.Source,
-			SubmissionID: item.SubmissionID,
+			ResourceType: int32(item.ResourceType),
+			ResourceID:   item.ResourceID,
 		})
 	}
 
@@ -134,7 +136,8 @@ func (svc *Service) GetScript(ctx context.Context, params api.GetScriptParams) (
 		Name:         script.Name,
 		Hash:         model.HashFormat(uint64(script.Hash)),
 		Source:       script.Source,
-		SubmissionID: script.SubmissionID,
+		ResourceType: int32(script.ResourceType),
+		ResourceID:   script.ResourceID,
 	}, nil
 }
 
@@ -165,8 +168,11 @@ func (svc *Service) UpdateScript(ctx context.Context, req *api.ScriptUpdate, par
 		pmap.Add("source", source)
 		pmap.Add("hash", int64(model.HashSource(source))) // No type safety!
 	}
-	if SubmissionID, ok := req.SubmissionID.Get(); ok {
-		pmap.Add("submission_id", SubmissionID)
+	if ResourceType, ok := req.ResourceType.Get(); ok {
+		pmap.Add("resource_type", ResourceType)
+	}
+	if ResourceID, ok := req.ResourceID.Get(); ok {
+		pmap.Add("resource_id", ResourceID)
 	}
 	return svc.DB.Scripts().Update(ctx, req.ID, pmap)
 }
diff --git a/pkg/service_internal/scripts.go b/pkg/service_internal/scripts.go
index 3cb0280..afa4868 100644
--- a/pkg/service_internal/scripts.go
+++ b/pkg/service_internal/scripts.go
@@ -19,7 +19,8 @@ func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*a
 		Name:         req.Name,
 		Hash:         int64(model.HashSource(req.Source)),
 		Source:       req.Source,
-		SubmissionID: req.SubmissionID.Or(0),
+		ResourceType: model.ResourceType(req.ResourceType),
+		ResourceID:   req.ResourceID.Or(0),
 	})
 	if err != nil {
 		return nil, err
@@ -69,7 +70,8 @@ func (svc *Service) ListScripts(ctx context.Context, params api.ListScriptsParam
 			ID:           item.ID,
 			Hash:         model.HashFormat(uint64(item.Hash)),
 			Source:       item.Source,
-			SubmissionID: item.SubmissionID,
+			ResourceType: int32(item.ResourceType),
+			ResourceID:   item.ResourceID,
 		})
 	}
 
@@ -92,6 +94,7 @@ func (svc *Service) GetScript(ctx context.Context, params api.GetScriptParams) (
 		Name:         script.Name,
 		Hash:         model.HashFormat(uint64(script.Hash)),
 		Source:       script.Source,
-		SubmissionID: script.SubmissionID,
+		ResourceType: int32(script.ResourceType),
+		ResourceID:   script.ResourceID,
 	}, nil
 }