package models

import (
	"eta_gn/eta_api/global"
	"github.com/rdlucklib/rdluck_tools/paging"
	"time"
)

type ImageConf struct {
	ImageConfId int       `gorm:"column:image_conf_id;primaryKey;autoIncrement:true"`
	CreateTime  time.Time `gorm:"column:create_time;autoCreateTime" description:"消息时间"`
	ModifyTime  time.Time `gorm:"column:modify_time;autoUpdateTime" description:"更新时间"`
	ImageName   string    `gorm:"column:image_name;type:varchar(64);not null;default:''" description:"图片名称"`
	Url         string    `gorm:"column:url;type:varchar(512);not null;default:''" description:"图片地址"`
	ConfType    int       `gorm:"column:conf_type;type:tinyint(4) unsigned;not null;default:1" description:"配置类型 1-ppt素材"`
	ImageType   int       `gorm:"column:image_type;type:tinyint(4) unsigned;not null;default:1" description:"图片类型 1-封面图 2-背景图 3-封底图"`
}

type ImageConfPage struct {
	List   []*ImageConf
	Paging *paging.PagingItem `description:"分页数据"`
}

// BatchAddImageMaterials 新增图片素材
func BatchAddImageMaterials(items []*ImageConf, batchSize int) (err error) {
	err = global.DmSQL["rddp"].CreateInBatches(items, batchSize).Error
	return
}

// GetImageConfByName 根据图片名称查询
func GetImageConfByName(imageName string) (item *ImageConf, err error) {
	item = &ImageConf{}
	err = global.DmSQL["rddp"].Where("image_name = ?", imageName).First(item).Error
	if err != nil && err.Error() == "record not found" {
		return nil, nil
	}
	return item, nil
}

// GetImageConfByCondition 根据条件查询图片素材
func GetImageConfByCondition(condition string, pars []interface{}) (list []*ImageConf, err error) {
	err = global.DmSQL["rddp"].Where(condition, pars...).Find(&list).Error
	return
}

// GetImageConfByConditionCount 根据条件查询图片素材数量
func GetImageConfByConditionCount(condition string, pars []interface{}) (count int64, err error) {
	err = global.DmSQL["rddp"].Model(&ImageConf{}).Where(condition, pars...).Count(&count).Error
	return
}

// EditImageMaterial 修改图片素材
func EditImageMaterial(item *ImageConf) (err error) {
	err = global.DmSQL["rddp"].Updates(item).Error
	return
}

// GetImageConfById 根据id查询图片素材
func GetImageConfById(id int) (item *ImageConf, err error) {
	item = &ImageConf{}
	err = global.DmSQL["rddp"].Where("image_conf_id = ?", id).First(item).Error
	return item, err
}

// DeleteImageConfByIds 根据id批量删除图片素材
func DeleteImageConfByIds(ids []int) (err error) {
	err = global.DmSQL["rddp"].Where("image_conf_id IN ?", ids).Delete(&ImageConf{}).Error
	return
}