From 8dbc7102ff08055b561cabfa202f1b83705d866f Mon Sep 17 00:00:00 2001 From: Buravit Yenjit Date: Thu, 13 Feb 2025 23:08:16 +0700 Subject: [PATCH] add domain farm,cropland & update plant --- backend/internal/domain/cropland.go | 36 +++++++++++++++++++++++++++++ backend/internal/domain/farm.go | 33 ++++++++++++++++++++++++++ backend/internal/domain/plant.go | 6 ++--- 3 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 backend/internal/domain/cropland.go create mode 100644 backend/internal/domain/farm.go diff --git a/backend/internal/domain/cropland.go b/backend/internal/domain/cropland.go new file mode 100644 index 0000000..17a7192 --- /dev/null +++ b/backend/internal/domain/cropland.go @@ -0,0 +1,36 @@ +package domain + +import ( + "context" + "time" + + validation "github.com/go-ozzo/ozzo-validation/v4" +) + +type Cropland struct { + UUID string + Name string + Status string + Priority int + LandSize float64 + GrowthStage string + PlantID string + FarmID string + CreatedAt time.Time + UpdatedAt time.Time +} + +func (c *Cropland) Validate() error { + return validation.ValidateStruct(c, + validation.Field(&c.Name, validation.Required), + validation.Field(&c.Status, validation.Required), + validation.Field(&c.GrowthStage, validation.Required), + validation.Field(&c.LandSize, validation.Required), + ) +} + +type CroplandRepository interface { + GetByID(context.Context, string) (Cropland, error) + CreateOrUpdate(context.Context, *Cropland) error + // Delete(context.Context, string) error +} diff --git a/backend/internal/domain/farm.go b/backend/internal/domain/farm.go new file mode 100644 index 0000000..5bc1154 --- /dev/null +++ b/backend/internal/domain/farm.go @@ -0,0 +1,33 @@ +package domain + +import ( + "context" + "time" + + validation "github.com/go-ozzo/ozzo-validation/v4" +) + +type Farm struct { + UUID string + Name string + Lat float64 + Lon float64 + CreatedAt time.Time + UpdatedAt time.Time + OwnerID string +} + +func (f *Farm) Validate() error { + return validation.ValidateStruct(f, + validation.Field(&f.Name, validation.Required), + validation.Field(&f.Lat, validation.Required), + validation.Field(&f.Lon, validation.Required), + validation.Field(&f.OwnerID, validation.Required), + ) +} + +type FarmRepository interface { + GetByID(context.Context, string) (Farm, error) + CreateOrUpdate(context.Context, *Farm) error + // Delete(context.Context, string) error +} diff --git a/backend/internal/domain/plant.go b/backend/internal/domain/plant.go index 0f0c064..d69b6c2 100644 --- a/backend/internal/domain/plant.go +++ b/backend/internal/domain/plant.go @@ -45,7 +45,7 @@ func (p *Plant) Validate() error { 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 + Create(context.Context, *Plant) error + Update(context.Context, *Plant) error + Delete(context.Context, string) error }