package models

import (
	"WorldEpcho/src/datasource"
)

// UserInspirationUsageLog 用户灵感消耗明细记录
type UserInspirationUsageLog struct {
	ID                  int64  `xorm:"'id' pk autoincr" json:"id"`                      // 主键,自增
	UserId              int64  `xorm:"user_id"  json:"user_id"`                         // 用户ID
	AppId               int64  `xorm:"app_id"  json:"appId"`                            // 应用ID
	DpId                int64  `xorm:"dp_id"  json:"dpId"`                              // 数字人ID
	DpName              string `xorm:"dp_name" json:"dpName"`                           // 数字人名称
	ChatTime            int64  `xorm:"chat_time" json:"chatTime"`                       // 聊天时间
	InspirationConsumed int64  `xorm:"inspiration_consumed" json:"InspirationConsumed"` // 灵感消耗量
}

// 添加记录
func AddUserInspirationUsageLog(userInspirLog *UserInspirationUsageLog) (int64, error) {
	return datasource.Engine.Insert(userInspirLog)
}

// 查询记录
func GetUserInspirationUsageLog(id int64) (*UserInspirationUsageLog, error) {
	userInspirLog := &UserInspirationUsageLog{}
	has, err := datasource.Engine.ID(id).Get(userInspirLog)
	if err != nil {
		return nil, err
	} else if !has {
		return nil, nil
	}
	return userInspirLog, nil
}

// 更新记录
func UpdateUserInspirationUsageLog(userInspirLog *UserInspirationUsageLog) (int64, error) {
	return datasource.Engine.ID(userInspirLog.ID).Update(userInspirLog)
}

// 删除记录
func DeleteUserInspirationUsageLog(id int64) (int64, error) {
	return datasource.Engine.ID(id).Delete(&UserInspirationUsageLog{})
}