package repo import ( "github.com/1Panel-dev/1Panel/agent/app/model" ) type PHPExtensionsRepo struct { } type IPHPExtensionsRepo interface { Page(page, size int, opts ...DBOption) (int64, []model.PHPExtensions, error) Save(extension *model.PHPExtensions) error Create(extension *model.PHPExtensions) error GetFirst(opts ...DBOption) (model.PHPExtensions, error) DeleteBy(opts ...DBOption) error List() ([]model.PHPExtensions, error) } func NewIPHPExtensionsRepo() IPHPExtensionsRepo { return &PHPExtensionsRepo{} } func (p *PHPExtensionsRepo) Page(page, size int, opts ...DBOption) (int64, []model.PHPExtensions, error) { var ( phpExtensions []model.PHPExtensions ) db := getDb(opts...).Model(&model.PHPExtensions{}) count := int64(0) db = db.Count(&count) err := db.Limit(size).Offset(size * (page - 1)).Find(&phpExtensions).Error return count, phpExtensions, err } func (p *PHPExtensionsRepo) List() ([]model.PHPExtensions, error) { var ( phpExtensions []model.PHPExtensions ) err := getDb().Model(&model.PHPExtensions{}).Find(&phpExtensions).Error return phpExtensions, err } func (p *PHPExtensionsRepo) Save(extension *model.PHPExtensions) error { return getDb().Save(&extension).Error } func (p *PHPExtensionsRepo) Create(extension *model.PHPExtensions) error { return getDb().Create(&extension).Error } func (p *PHPExtensionsRepo) GetFirst(opts ...DBOption) (model.PHPExtensions, error) { var extension model.PHPExtensions db := getDb(opts...).Model(&model.PHPExtensions{}) err := db.First(&extension).Error return extension, err } func (p *PHPExtensionsRepo) DeleteBy(opts ...DBOption) error { return getDb(opts...).Delete(&model.PHPExtensions{}).Error }