From 1839f8dfc03ee86a46ba68f679f4ed554cf0c505 Mon Sep 17 00:00:00 2001 From: Buravit Yenjit Date: Thu, 13 Feb 2025 22:18:50 +0700 Subject: [PATCH] feat: add domain plant --- backend/internal/domain/plant.go | 51 ++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 backend/internal/domain/plant.go diff --git a/backend/internal/domain/plant.go b/backend/internal/domain/plant.go new file mode 100644 index 0000000..0f0c064 --- /dev/null +++ b/backend/internal/domain/plant.go @@ -0,0 +1,51 @@ +package domain + +import ( + "context" + "time" + + validation "github.com/go-ozzo/ozzo-validation/v4" +) + +type Plant struct { + UUID string + Name string + Variety *string + RowSpacing *float64 + OptimalTemp *float64 + PlantingDepth *float64 + AverageHeight *float64 + LightProfileID int + SoilConditionID int + PlantingDetail *string + IsPerennial bool + DaysToEmerge *int + DaysToFlower *int + DaysToMaturity *int + HarvestWindow *int + PHValue *float64 + EstimateLossRate *float64 + EstimateRevenuePerHU *float64 + HarvestUnitID int + WaterNeeds *float64 + CreatedAt time.Time + UpdatedAt time.Time +} + +func (p *Plant) Validate() error { + return validation.ValidateStruct(p, + validation.Field(&p.UUID, validation.Required), + validation.Field(&p.Name, validation.Required), + validation.Field(&p.LightProfileID, validation.Required), + validation.Field(&p.SoilConditionID, validation.Required), + validation.Field(&p.HarvestUnitID, validation.Required), + ) +} + +type PlantRepository interface { + GetByUUID(context.Context, string) (Plant, error) + GetAll(context.Context) ([]Plant, error) + //Create(context.Context, *Plant) error + //Update(context.Context, *Plant) error + //Delete(context.Context, string) error +}