func deleteScope(scope *gorm.Scope) { if !scope.HasError() { _, supportedModel := scope.InstanceGet("publish:supported_model") if supportedModel && IsDraftMode(scope.DB()) { scope.Raw( fmt.Sprintf("UPDATE %v SET deleted_at=%v, publish_status=%v %v", scope.QuotedTableName(), scope.AddToVars(gorm.NowFunc()), scope.AddToVars(DIRTY), scope.CombinedConditionSql(), )) scope.Exec() } else { gorm.Delete(scope) } } }