final project structure

This commit is contained in:
2025-04-15 22:36:22 +02:00
parent d6b3e88b5f
commit 284a40fac2
65 changed files with 668 additions and 447 deletions

View File

@@ -0,0 +1,8 @@
package base
type Taxonomy struct {
ID uint `gorm:"primaryKey" json:"id"`
Name string `gorm:"not null;index" json:"name"` // e.g., "kg", "lb"
}
func (t Taxonomy) GetID() uint { return t.ID }

View File

@@ -0,0 +1,5 @@
package crop
import "wagfarm-api/taxonomy/base"
type Crop struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package crop
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/crop"), generic.DefaultCRUDController[Crop]())
}

View File

@@ -0,0 +1,5 @@
package customer
import "wagfarm-api/taxonomy/base"
type Customer struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package customer
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/customer"), generic.DefaultCRUDController[Customer]())
}

View File

@@ -0,0 +1,5 @@
package fertilizertype
import "wagfarm-api/taxonomy/base"
type FertilizerType struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package fertilizertype
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/fertilizertype"), generic.DefaultCRUDController[FertilizerType]())
}

View File

@@ -0,0 +1,12 @@
package ingredient
import (
"wagfarm-api/taxonomy/base"
"wagfarm-api/taxonomy/unit"
)
type Ingredient struct {
base.Taxonomy
UnitID uint `gorm:"not null"`
Unit unit.Unit `gorm:"not null"`
}

View File

@@ -0,0 +1,11 @@
package ingredient
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/ingredient"), generic.DefaultCRUDController[Ingredient]())
}

View File

@@ -0,0 +1,5 @@
package pesticidetype
import "wagfarm-api/taxonomy/base"
type PesticideType struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package pesticidetype
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/pesticidetype"), generic.DefaultCRUDController[PesticideType]())
}

View File

@@ -0,0 +1,5 @@
package producttype
import "wagfarm-api/taxonomy/base"
type ProductType struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package producttype
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/producttype"), generic.DefaultCRUDController[ProductType]())
}

View File

@@ -0,0 +1,5 @@
package seedingcondition
import "wagfarm-api/taxonomy/base"
type SeedingCondition struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package seedingcondition
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/seedingcondition"), generic.DefaultCRUDController[SeedingCondition]())
}

View File

@@ -0,0 +1,5 @@
package seedingtechnique
import "wagfarm-api/taxonomy/base"
type SeedingTechnique struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package seedingtechnique
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/seedingtechnique"), generic.DefaultCRUDController[SeedingTechnique]())
}

View File

@@ -0,0 +1,12 @@
package seedtype
import (
"wagfarm-api/taxonomy/base"
"wagfarm-api/taxonomy/crop"
)
type SeedType struct {
base.Taxonomy
CropID uint `gorm:"not null"`
Crop crop.Crop `gorm:"not null; constraint:OnUpdate:CASCADE,OnDelete:CASCADE;"`
}

View File

@@ -0,0 +1,11 @@
package seedtype
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/seedtype"), generic.DefaultCRUDController[SeedType]())
}

View File

@@ -0,0 +1,5 @@
package seller
import "wagfarm-api/taxonomy/base"
type Seller struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package seller
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/seller"), generic.DefaultCRUDController[Seller]())
}

View File

@@ -0,0 +1,5 @@
package unit
import "wagfarm-api/taxonomy/base"
type Unit struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package unit
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/unit"), generic.DefaultCRUDController[Unit]())
}

View File

@@ -0,0 +1,5 @@
package visibility
import "wagfarm-api/taxonomy/base"
type Visibility struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package visibility
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/visibility"), generic.DefaultCRUDController[Visibility]())
}

View File

@@ -0,0 +1,5 @@
package worker
import "wagfarm-api/taxonomy/base"
type Worker struct{ base.Taxonomy }

View File

@@ -0,0 +1,11 @@
package worker
import (
"wagfarm-api/generic"
"github.com/gin-gonic/gin"
)
func RegisterRoutes(rg *gin.RouterGroup) {
generic.RegisterCRUDRoutes(rg.Group("/worker"), generic.DefaultCRUDController[Worker]())
}