Hub-Api/repositories/plan/command_repository.go

66 lines
1.4 KiB
Go

package plan_repository
import (
"netina/models"
"gorm.io/gorm"
)
type PlanCommand interface{
CreatePlan(o *models.Plan) error
GetPlan(id uint)(*models.Plan , error)
UpdatePlan(id uint , o *models.Plan)(*models.Plan , error)
RemovePlan(id uint)error
}
type PlanCommandRepository struct{
DB *gorm.DB
}
func (r *PlanCommandRepository) CreatePlan(plan *models.Plan)error{
if err := r.DB.Create(&plan).Error ; err != nil {
return err
}
return nil
}
func (r *PlanCommandRepository) GetPlan(id uint)(*models.Plan , error){
var Plan models.Plan
if err := r.DB.Where("is_removed = ?" , false).Where("plan_id = ?" , id).First(&Plan).Error; err != nil {
return nil , err
}
return &Plan , nil
}
func (r *PlanCommandRepository) UpdatePlan(id uint , plan *models.Plan)(*models.Plan , error){
var temp models.Plan
if err := r.DB.Where("is_removed = ?" , false).Where("plan_id = ?" , id).First(&temp).Error ; err != nil {
return nil , err
}
temp.Partnership = plan.Partnership
temp.Modified_at = plan.Modified_at
temp.Modified_by = plan.Modified_by
temp.PercentageOfOwner = plan.PercentageOfOwner
temp.Price = plan.Price
if err := r.DB.Save(&temp).Error; err != nil {
return nil , err
}
return &temp , nil
}
func (r *PlanCommandRepository) RemovePlan(id uint)error{
if err := r.DB.Where("plan_id = ?" , id).Error;err != nil {
return err
}
return nil
}