package edb_refresh

import (
	"errors"
	"eta_gn/eta_index_lib/global"
	"time"
)

// EdbRefreshConfig
// @Description: 指标的刷新时间配置表
type EdbRefreshConfig struct {
	EdbRefreshConfigId  int       `gorm:"primaryKey;autoIncrement;column:edb_refresh_config_id"`
	RefreshFrequency    string    `gorm:"column:refresh_frequency" description:"刷新频率"`
	RefreshFrequencyDay int       `gorm:"column:refresh_frequency_day" description:"具体刷新的日期"`
	RefreshTime         string    `gorm:"column:refresh_time" description:"刷新时间"`
	RefreshAllData      int       `gorm:"column:refresh_all_data" description:"是否刷新所有数据,0:否,1:刷新所有数据"`
	RefreshDataNum      int       `gorm:"column:refresh_data_num" description:"刷新单元格数"`
	ModifyTime          time.Time `gorm:"column:modify_time" description:"最晚一次的更新时间"`
	CreateTime          time.Time `gorm:"column:create_time" description:"添加时间"`
}

// Add
// @Description: 添加
// @author: Roc
// @receiver m
// @datetime 2023-12-14 16:11:10
// @param cols []string
// @return err error
func (m *EdbRefreshConfig) Add() (err error) {
	if m.EdbRefreshConfigId > 0 {
		err = errors.New("该配置已存在")
		return
	}
	err = global.DEFAULT_DmSQL.Create(m).Error

	return
}

// Update
// @Description: 更新
// @author: Roc
// @receiver m
// @datetime 2023-12-14 16:11:10
// @param cols []string
// @return err error
func (m *EdbRefreshConfig) Update(cols []string) (err error) {

	err = global.DEFAULT_DmSQL.Model(m).Select(cols).Updates(m).Error
	return
}

// Delete
// @Description: 删除
// @author: Roc
// @receiver m
// @datetime 2023-12-14 16:11:10
// @return err error
func (m *EdbRefreshConfig) Delete() (err error) {
	//todo 删除前判断
	err = global.DEFAULT_DmSQL.Delete(m).Error
	return
}

// GetEdbRefreshConfigListByCondition
// @Description: 根据条条件获取刷新配置列表
// @author: Roc
// @datetime 2024-01-09 13:28:49
// @param condition string
// @param pars []interface{}
// @return list []*EdbRefreshDefaultConfig
// @return err error
func GetEdbRefreshConfigListByCondition(condition string, pars []interface{}) (list []*EdbRefreshConfig, err error) {

	sql := `SELECT * FROM edb_refresh_config
         WHERE 1 = 1 `

	if condition != "" {
		sql += condition
	}
	sql += ` ORDER BY edb_refresh_config_id ASC `
	err = global.DEFAULT_DmSQL.Raw(sql, pars...).Scan(&list).Error

	return
}