package sandbox

import (
	"eta_gn/eta_api/global"
	"time"
)

type SandboxDraft struct {
	SandboxDraftId      int       `gorm:"primaryKey;column:sandbox_draft_id;type:int(9) unsigned;not null"`                     // 沙盘草稿记录id
	SandboxId           int       `gorm:"index:idx_sandbox_user_id;column:sandbox_id;type:int(9) unsigned;not null;default:0"`  // 沙盘id
	Name                string    `gorm:"column:name;type:varchar(64);not null;default:''"`                                     // 沙盘名称
	ChartPermissionId   int       `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"`                   // 品种id
	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(32);not null;default:''"`                    // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
	CurrVersion         int       `gorm:"column:curr_version;type:int(9) unsigned;not null;default:0"`                          // 当前版本
	Content             string    `gorm:"column:content;type:text;not null"`                                                    // 沙盘数据
	OpUserId            int       `gorm:"index:idx_sandbox_user_id;column:op_user_id;type:int(10) unsigned;not null;default:0"` // 当前编辑操作的用户id
	OpUserName          string    `gorm:"column:op_user_name;type:varchar(32);not null;default:''"`                             // 当前编辑的用户名称(冗余字段,避免查表)
	CreateTime          time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`                          // 沙盘草稿创建时间
}

func AddSandboxDraft(sandboxDraft *SandboxDraft) (err error) {
	err = global.DmSQL["data"].Create(sandboxDraft).Error
	return
}

func GetLastSandboxDraftById(sandboxId int) (sandboxDraft *SandboxDraft, err error) {
	sql := `select * from sandbox_draft where sandbox_id = ? order by sandbox_draft_id desc `
	err = global.DmSQL["data"].Raw(sql, sandboxId).First(&sandboxDraft).Error
	return
}