diff --git a/internal/config/postgresql.go b/internal/config/postgresql.go index b7267c3..161e351 100644 --- a/internal/config/postgresql.go +++ b/internal/config/postgresql.go @@ -39,7 +39,7 @@ func (p *Postgres) NewConnection() { } func (p *Postgres) Migration() { - err := p.DB.AutoMigrate(&domain.Role{}, &domain.User{}, &domain.Obat{}, &domain.Penyakit{}, &domain.Kunjungan{}) + err := p.DB.AutoMigrate(&domain.Role{}, &domain.User{}, &domain.Obat{}, &domain.Penyakit{}, &domain.CategoryKunjungan{}, &domain.Kunjungan{}) if err != nil { log.Printf("error migration because :%s", err.Error()) } diff --git a/internal/entity/domain/kunjungan.go b/internal/entity/domain/kunjungan.go index d44101d..b1440a9 100644 --- a/internal/entity/domain/kunjungan.go +++ b/internal/entity/domain/kunjungan.go @@ -4,9 +4,17 @@ import "gorm.io/gorm" type Kunjungan struct { gorm.Model - UserID uint `json:"user_id" form:"user_id" validate:"required"` - Doctor string `json:"doctor" from:"doctor" validate:"required"` - PenyakitID []uint `json:"penyakit_id" form:"penyakit_id" validate:"required"` - User User `json:"user" gorm:"foreignKey:UserID;references:ID"` - Penyakit []Penyakit `json:"penyakit" gorm:"foreignKey:PenyakitID;references:ID"` + UserID uint `json:"user_id" form:"user_id" validate:"required"` + Doctor string `json:"doctor" from:"doctor" validate:"required"` + Type uint `json:"type" form:"type"` + PenyakitID []uint `json:"penyakit_id" form:"penyakit_id" validate:"required"` + User User `json:"user" gorm:"foreignKey:UserID;references:ID"` + Penyakit []Penyakit `json:"penyakit" gorm:"foreignKey:PenyakitID;references:ID"` + Category CategoryKunjungan `json:"category" form:"category" gorm:"foreignKey:Type;references:ID"` +} + +type CategoryKunjungan struct { + gorm.Model + Name string `json:"name" form:"name"` + Description string `json:"description" form:"description"` } diff --git a/internal/entity/domain/reporter.go b/internal/entity/domain/reporter.go index ddd9c61..14b85b5 100644 --- a/internal/entity/domain/reporter.go +++ b/internal/entity/domain/reporter.go @@ -9,6 +9,7 @@ import ( type Reported struct { ID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"` Pengunjung string `json:"pengunjung" bson:"pengunjung"` + Category string `json:"category" form:"category"` Age int `json:"age" bson:"age"` Address string `json:"address" bson:"address"` CreateAt time.Time `json:"create_at" bson:"create_at"` diff --git a/internal/entity/web/reported.go b/internal/entity/web/reported.go index c2e1d9a..9bfeef3 100644 --- a/internal/entity/web/reported.go +++ b/internal/entity/web/reported.go @@ -5,6 +5,7 @@ import "go.mongodb.org/mongo-driver/bson/primitive" type Reported struct { ID primitive.ObjectID `json:"_id,omitempty" bson:"_id,omitempty"` Pengunjung string `json:"pengunjung" bson:"pengunjung"` - Age int `json:"age" bson:"age"` + Age int `json:"age" bson:"age"` Address string `json:"address" bson:"address"` -} \ No newline at end of file + Category string `json:"category" bson:"category"` +} diff --git a/internal/repository/kunjungan.go b/internal/repository/kunjungan.go index 3bc5d13..238018f 100644 --- a/internal/repository/kunjungan.go +++ b/internal/repository/kunjungan.go @@ -29,7 +29,7 @@ func (k *kunjungan) Create(req domain.Kunjungan) (*domain.Kunjungan, error) { return nil, util.Errors(err) } - err = k.client.DB.Preload("Penyakit").Preload("User").Find(&req).Error + err = k.client.DB.Preload("Penyakit").Preload("User").Preload("Category").Find(&req).Error if err != nil { return nil, util.Errors(err) } diff --git a/internal/repository/reported.go b/internal/repository/reported.go index 5e24dbf..dbcc88d 100644 --- a/internal/repository/reported.go +++ b/internal/repository/reported.go @@ -58,6 +58,7 @@ func (r *reported) Create(req *domain.Kunjungan) error { reported.Pengunjung = req.User.FName + req.User.LName reported.Address = req.User.Address reported.Age = req.User.Age + reported.Category = req.Category.Name primitive.NewDateTimeFromTime(reported.CreateAt) primitive.NewDateTimeFromTime(reported.UpdateAt) diff --git a/internal/service/admin.go b/internal/service/admin.go index bfa0425..a5663cb 100644 --- a/internal/service/admin.go +++ b/internal/service/admin.go @@ -113,6 +113,7 @@ func (a *admin) Reported() (*[]web.Reported, error) { Pengunjung: v.Pengunjung, Age: v.Age, Address: v.Address, + Category: v.Category, } response = append(response, result)