package plan_repository import ( "netina/models" "gorm.io/gorm" ) type PlanCommand interface{ CreatePlan(o *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 }