// Package data_manage @Author gmy 2024/10/21 9:26:00
package data_manage

import (
	"eta/eta_api/global"
	"eta/eta_api/utils"
)

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

type BaseFromRzdClassifyResponse struct {
	BaseFromRzdClassifyId int    `orm:"column(base_from_rzd_classify_id);pk" gorm:"primaryKey"`
	CreateTime            string `orm:"column(create_time)"`
	ModifyTime            string `orm:"column(modify_time)"`
	ClassifyName          string `orm:"column(classify_name)"`
	ParentId              int    `orm:"column(parent_id)"`
	Sort                  int    `orm:"column(sort)"`
	ClassifyNameEn        string `orm:"column(classify_name_en)"`
	IndexInfo             []*BaseFromRzdIndex
	Child                 []*BaseFromRzdClassifyResponse
}


// GetAllRzdClassify 查询所有分类
func GetAllRzdClassify() (items []*BaseFromRzdClassify, err error) {
	o := global.DbMap[utils.DbNameIndex]
	sql := `SELECT * FROM base_from_rzd_classify ORDER BY sort asc`
	err = o.Raw(sql).Find(&items).Error
	return
}

// GetRzdClassifyItemByClassifyId 根据分类id查询分类信息
func GetRzdClassifyItemByClassifyId(classifyId int) (item *BaseFromRzdClassify, err error) {
	o := global.DbMap[utils.DbNameIndex]
	sql := ` SELECT * FROM base_from_rzd_classify WHERE base_from_rzd_classify_id = ?`

	err = o.Raw(sql, classifyId).First(&item).Error
	if err != nil {
		return
	}
	return item, nil
}

func GetRzdClassifyItemByParentId(parentId int) (items []*BaseFromRzdClassify, err error) {
	o := global.DbMap[utils.DbNameIndex]
	sql := ` SELECT * FROM base_from_rzd_classify WHERE parent_id = ?`

	err = o.Raw(sql, parentId).Find(&items).Error
	return
}