From d26e7b83452ab4390d102fbcd53532cc3c2d179f Mon Sep 17 00:00:00 2001
From: katefort <katherine.d.fort@gmail.com>
Date: Mon, 31 Mar 2025 18:15:51 -0500
Subject: [PATCH] Rearrange folders, and separate functionality

---
 cmd/main.go                            |  0
 internal/controllers/routes.go         |  8 ++++
 {src => internal}/database/database.go | 62 ++-----------------------
 internal/database/models.go            | 64 ++++++++++++++++++++++++++
 internal/services/userService.go       |  1 +
 5 files changed, 76 insertions(+), 59 deletions(-)
 create mode 100644 cmd/main.go
 create mode 100644 internal/controllers/routes.go
 rename {src => internal}/database/database.go (58%)
 create mode 100644 internal/database/models.go
 create mode 100644 internal/services/userService.go

diff --git a/cmd/main.go b/cmd/main.go
new file mode 100644
index 0000000..e69de29
diff --git a/internal/controllers/routes.go b/internal/controllers/routes.go
new file mode 100644
index 0000000..161a77a
--- /dev/null
+++ b/internal/controllers/routes.go
@@ -0,0 +1,8 @@
+package main
+
+func main() {
+	router := gin.Default()
+	router.GET("/test", runTest)
+
+	router.Run("localhost:8080")
+}
diff --git a/src/database/database.go b/internal/database/database.go
similarity index 58%
rename from src/database/database.go
rename to internal/database/database.go
index 2c2a14a..824a3fa 100644
--- a/src/database/database.go
+++ b/internal/database/database.go
@@ -12,69 +12,10 @@ import (
 
 var ProductsTable = ksql.NewTable("products", "product_id")
 
-type Product struct {
-	id         int       `ksql:"id"`
-	system     string    `ksql:"system"`
-	barcode    string    `ksql:"barcode"`
-	created_at time.Time `ksql:"created_at,timeNowUTC"`
-}
-
 var UserClaimsTable = ksql.NewTable("user_claims", "user_claim_id")
 
-type UserClaim struct {
-	id            int          `ksql:"id"`
-	product_id    int          `ksql:"product_id"`
-	evidence_type EvidenceType `ksql:"evidence_type"`
-	evidence      struct{}     `ksql:"evidence,json"`
-	claim         Claim        `ksql:"claim"`
-	counter_claim Claim        `ksql:"counter_claim"`
-	created_at    time.Time    `ksql:"created_at,timeNowUTC"`
-	created_by    string       `ksql:"created_by"`
-}
-
-type EvidenceType int
-
-const (
-	ManufactureWebsite EvidenceType = iota
-	IngredientsList
-)
-
 var AutomatedClaimsTable = ksql.NewTable("automated_claims", "automated_claim_id")
 
-type AutomatedClaim struct {
-	id            int        `ksql:"id"`
-	product_id    int        `ksql:"product_id"`
-	worker_type   WorkerType `ksql:"worker_type"`
-	evidence      struct{}   `ksql:"evidence,json"`
-	claim         Claim      `ksql:"claim"`
-	counter_claim Claim      `ksql:"counter_claim"`
-	created_at    time.Time  `ksql:"created_at,timeNowUTC"`
-}
-
-type WorkerType int
-
-const (
-	Barnivore WorkerType = iota
-)
-
-type Claim int
-
-const (
-	ContainsMeat Claim = iota
-	ContainsFish
-	ContainsEggs
-	ContainsMilk
-	ContainsHoney
-	ContainsWax
-	ContainsFur
-	ContainsLeather
-	ContainsAnimalFibers
-	ContainsWool
-	ContainsFeathers
-	AnimalTesting
-	MonkeySlavery
-)
-
 func main() {
 	ctx := context.Background()
 
@@ -92,6 +33,9 @@ func main() {
 	}
 	defer db.Close()
 
+}
+
+func createTables(db) {
 	_, err = db.Exec(ctx, `
 		CREATE TABLE IF NOT EXISTS products (
 			id INTEGER PRIMARY KEY,
diff --git a/internal/database/models.go b/internal/database/models.go
new file mode 100644
index 0000000..034b110
--- /dev/null
+++ b/internal/database/models.go
@@ -0,0 +1,64 @@
+package main
+
+import (
+	"github.com/vingarcia/ksql"
+)
+
+type Product struct {
+	id         int       `ksql:"id"`
+	system     string    `ksql:"system"`
+	barcode    string    `ksql:"barcode"`
+	created_at time.Time `ksql:"created_at,timeNowUTC"`
+}
+
+type WorkerType int
+
+const (
+	Barnivore WorkerType = iota
+)
+
+type EvidenceType int
+
+const (
+	ManufactureWebsite EvidenceType = iota
+	IngredientsList
+)
+
+type Claim int
+
+const (
+	ContainsMeat Claim = iota
+	ContainsFish
+	ContainsEggs
+	ContainsMilk
+	ContainsHoney
+	ContainsWax
+	ContainsFur
+	ContainsLeather
+	ContainsAnimalFibers
+	ContainsWool
+	ContainsFeathers
+	AnimalTesting
+	MonkeySlavery
+)
+
+type AutomatedClaim struct {
+	id            int        `ksql:"id"`
+	product_id    int        `ksql:"product_id"`
+	worker_type   WorkerType `ksql:"worker_type"`
+	evidence      struct{}   `ksql:"evidence,json"`
+	claim         Claim      `ksql:"claim"`
+	counter_claim Claim      `ksql:"counter_claim"`
+	created_at    time.Time  `ksql:"created_at,timeNowUTC"`
+}
+
+type UserClaim struct {
+	id            int          `ksql:"id"`
+	product_id    int          `ksql:"product_id"`
+	evidence_type EvidenceType `ksql:"evidence_type"`
+	evidence      struct{}     `ksql:"evidence,json"`
+	claim         Claim        `ksql:"claim"`
+	counter_claim Claim        `ksql:"counter_claim"`
+	created_at    time.Time    `ksql:"created_at,timeNowUTC"`
+	created_by    string       `ksql:"created_by"`
+}
diff --git a/internal/services/userService.go b/internal/services/userService.go
new file mode 100644
index 0000000..06ab7d0
--- /dev/null
+++ b/internal/services/userService.go
@@ -0,0 +1 @@
+package main