// Code generated by gowebx, DO AVOID EDIT.
package audioencodedb

import (
	"easyvqd/internal/core/vqd"
	"gorm.io/gorm"
)

var _ vqd.Storer = DB{}

// DB Related business namespaces
type DB struct {
	db *gorm.DB
}

// NewDB instance object
func NewDB(db *gorm.DB) DB {
	return DB{db: db}
}

func (d DB) VqdTask() vqd.VqdTaskStorer {
	return VqdTask(d)
}
func (d DB) VqdTaskTemplate() vqd.VqdTaskTemplateStorer {
	return VqdTaskTemplate(d)
}
func (d DB) VqdTimeTemplate() vqd.VqdTimeTemplateStorer {
	return VqdTimeTemplate(d)
}
func (d DB) VqdAlarm() vqd.VqdAlarmStorer {
	return VqdAlarm(d)
}

// AutoMigrate sync database
func (d DB) AutoMigrate(ok bool) DB {
	if !ok {
		return d
	}
	if err := d.db.AutoMigrate(
		new(vqd.VqdTask),
		new(vqd.VqdTaskTemplate),
		new(vqd.VqdTimeTemplate),
		new(vqd.VqdAlarm),
	); err != nil {
		panic(err)
	}
	return d
}
