// @Author gmy 2024/8/7 9:26:00
package models

import (
	"eta/eta_index_lib/global"
	"eta/eta_index_lib/utils"
	"gorm.io/gorm/clause"
)

type BaseFromRzdClassify struct {
	BaseFromRzdClassifyId int    `gorm:"column:base_from_rzd_classify_id;primaryKey"`
	CreateTime            string `gorm:"column:create_time"`
	ModifyTime            string `gorm:"column:modify_time"`
	ClassifyName          string `gorm:"column:classify_name"`
	ParentId              int    `gorm:"column:parent_id"`
	Sort                  int    `gorm:"column:sort"`
	ClassifyNameEn        string `gorm:"column:classify_name_en"`
}

// GetRzdClassifyByName 根据分类名称查询
func GetRzdClassifyByName(classifyName string) (item *BaseFromRzdClassify, err error) {
	//o := orm.NewOrm()
	sql := `SELECT * FROM base_from_rzd_classify WHERE classify_name=?`
	//err = o.Raw(sql, classifyName).QueryRow(&item)
	err = global.DEFAULT_DB.Raw(sql, classifyName).First(&item).Error
	if utils.IsErrNoRow(err) {
		return nil, nil
	}
	return
}

// GetRzdClassifyByName 睿咨得分类查询
func GetRzdClassifyList() (list []*BaseFromRzdClassify, err error) {
	sql := `SELECT * FROM base_from_rzd_classify`
	err = global.DEFAULT_DB.Raw(sql).Find(&list).Error
	return
}

// AddRzdClassify 新增分类
func AddRzdClassify(classify *BaseFromRzdClassify) (int64, error) {
	//o := orm.NewOrm()
	//id, err := o.Insert(classify)
	err := global.DEFAULT_DB.Create(&classify).Error
	if err != nil {
		return 0, err
	}
	id := int64(classify.BaseFromRzdClassifyId)
	return id, nil
}

// BatchAddRzdClassify 批量新增分类
func BatchAddRzdClassify(classify []*BaseFromRzdClassify) (err error) {
	err = global.DEFAULT_DB.Clauses(
		clause.OnConflict{
			Columns:   []clause.Column{{Name: "classify_name"}},
			DoNothing: true,
		}).CreateInBatches(classify, 100).Error
	return
}