package mysql

import (
	orm "duoduo/database"

	"github.com/shopspring/decimal"
)

type AdminTransRecords struct {
	ID         int64           `gorm:"column:id;primary_key;AUTO_INCREMENT" json:"id"`
	Amount     decimal.Decimal `gorm:"column:amount" json:"amount"`           // 管理员提现金额
	CreateTime string          `gorm:"column:create_time" json:"create_time"` // 创建时间
	UpdateTime string          `gorm:"column:update_time" json:"update_time"` // 更新时间
}

func (t *AdminTransRecords) TableName() string {
	return "admin_trans_records"
}

//计算管理员已体现金额
func (t *AdminTransRecords) GetTrans() (decimal.Decimal, error) {
	var adminTrans AdminTransRecords
	err := orm.Eloquent.Select("SUM(amount) as amount").Table(t.TableName()).First(&adminTrans).Error

	if err != nil {
		return adminTrans.Amount, err
	}

	return adminTrans.Amount, nil

}

func (t *AdminTransRecords) Create() (AdminTransRecords, error) {
	var doc AdminTransRecords
	result := orm.Eloquent.Table(t.TableName()).Create(&t)
	if result.Error != nil {
		err := result.Error
		return doc, err
	}
	doc = *t
	return doc, nil
}

//list 接口使用
func (t *AdminTransRecords) GetTransList(pageSize int, pageIndex int) ([]AdminTransRecords, int, error) {
	var doc []AdminTransRecords

	table := orm.Eloquent.Table(t.TableName())

	var count int
	if err := table.Select("*").Order("id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Error; err != nil {
		return nil, 0, err
	}
	table.Count(&count)
	return doc, count, nil
}