package wechatimg

import (
	"strconv"
	"time"
	"wechat-conf/models"
	"wechat-conf/models/model"
	"wechat-conf/utils"

	"github.com/go-xorm/xorm"
)

// WechatImgDAO 当前数据库操作对象
type WechatImgDAO struct {
	ctx *utils.Context
	db  *xorm.Session
}

// NewWechatImgDAO New Inst
func NewWechatImgDAO(ctx *utils.Context) *WechatImgDAO {
	return &WechatImgDAO{
		ctx: ctx,
		db:  ctx.DB,
	}
}
func (m *WechatImgDAO) GetWechatImgList(orgId string, page, pagesize int) ([]model.TaWechatImg, error) {
	var img []model.TaWechatImg
	sql := `SELECT * FROM ta_wechat_img WHERE status > ` + strconv.Itoa(models.STATUS_DEL) + `
	and org_id = '` + orgId + `'`
	sql += ` order by create_date desc limit ` + strconv.Itoa((page-1)*pagesize) + `, ` + strconv.Itoa(pagesize)
	err := m.db.Sql(sql).Find(&img)
	return img, err
}
func (m *WechatImgDAO) GetWechatImgListCount(orgId string) (int, error) {
	var img []model.TaWechatImg
	sql := `SELECT * FROM ta_wechat_img WHERE status > ` + strconv.Itoa(models.STATUS_DEL) + `
	and org_id = '` + orgId + `'`
	err := m.db.Sql(sql).Find(&img)
	return len(img), err
}
func (m *WechatImgDAO) GetWechatImgByMediaId(mediaId string) (*model.TaWechatImg, error) {
	var img []model.TaWechatImg
	sql := `SELECT * FROM ta_wechat_img WHERE status > ` + strconv.Itoa(models.STATUS_DEL) + `
	and media_id = '` + mediaId + `'`
	err := m.db.Sql(sql).Find(&img)
	if len(img) > 0 {
		return &img[0], err
	}
	return nil, err
}
func (m *WechatImgDAO) AddWechatImg(img model.TaWechatImg) error {
	img.CreateDate = time.Now()
	img.Status = models.STATUS_NORMAL
	_, err := m.db.Insert(img)
	return err
}

func (m *WechatImgDAO) AddWechatImgs(imgs []model.TaWechatImg) error {
	_, err := m.db.Insert(imgs)
	return err
}

func (m *WechatImgDAO) DeleteWechatImg(mediaId string) error {
	_, err := m.db.Delete(&model.TaWechatImg{MediaId: mediaId})
	return err
}
func (m *WechatImgDAO) DeleteBatchByOrgId(orgId string) error {
	_, err := m.db.Delete(&model.TaWechatImg{OrgId: orgId})
	return err
}