31 lines
858 B
Go
31 lines
858 B
Go
package subscribeplanrepository
|
|
|
|
import (
|
|
"fmt"
|
|
"legalgo-BE-go/database"
|
|
subscribedomain "legalgo-BE-go/internal/domain/subscribe"
|
|
subscribeplandomain "legalgo-BE-go/internal/domain/subscribe_plan"
|
|
)
|
|
|
|
func (a *accessor) Delete(id string) error {
|
|
var subsPlan database.SubscribePlan
|
|
var basicPlan subscribeplandomain.SubscribePlan
|
|
|
|
if err := a.db.First(&basicPlan, "code = ?", "basic").Error; err != nil {
|
|
return fmt.Errorf("failed to find basic plan: %v", err)
|
|
}
|
|
|
|
if err := a.db.
|
|
Model(&subscribedomain.Subscribe{}).
|
|
Where("subscribe_plan_id = ?", id).
|
|
Update("subscribe_plan_id", basicPlan.ID); err != nil {
|
|
return fmt.Errorf("failed to change subscribe plan: %v", err)
|
|
}
|
|
|
|
if err := a.db.Where("id = ?", id).Delete(&subsPlan).Error; err != nil {
|
|
return fmt.Errorf("failed to delete subscribe plan %s : %v", id, err)
|
|
}
|
|
|
|
return nil
|
|
}
|