60 lines
1.2 KiB
Go
60 lines
1.2 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) 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{
|
|
var plan models.Plan
|
|
if err := r.DB.Where("plan_id = ?" , id).Model(&plan).Update("is_removed" , true).Error;err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
} |