package vo

import (
	"exam_system/entity"
	"time"
)

// ExamRecordVo 提交考试时使用
type ExamRecordVo struct {
	Id       int        `json:"id,omitempty" db:"id,omitempty"`
	CreateAt time.Time  `json:"create_at,omitempty" db:"create_at,omitempty"`
	UpdateAt time.Time  `json:"update_at,omitempty" db:"update_at,omitempty"`
	DeleteAt *time.Time `json:"-" db:"delete_at,omitempty"`
	Score   *int 		`json:"score,omitempty" db:"score,omitempty"`
	UserId  int			`json:"user_id,omitempty" db:"user_id,omitempty"`
	ExamId int 			`json:"exam_id,omitempty" db:"exam_id,omitempty"`
	// 记录考试状态,防止用户恶意修改考试记录
	Token string 		`json:"token,omitempty" db:"token,omitempty"`
	AnswerVo []*AnswerVo `json:"answer,omitempty"`
}


type AnswerVo struct {
	Id *int	`json:"id,omitempty" db:"id,omitempty"`
	// 个人答案
	OwnAnswer string `json:"own_answer,omitempty" db:"own_answer,omitempty"`
	*entity.Subject
}

// ExamRecordVo1 查询列表时使用
type ExamRecordVo1 struct {

	*entity.ExamRecord
	*ExamVo1
	Score *int `json:"score,omitempty" db:"score,omitempty"`
	Username *string `json:"username,omitempty" db:"username,omitempty"`
	UserScore *int `json:"user_score,omitempty" db:"user_score,omitempty"`
	UserTakeTime *int `json:"user_take_time,omitempty" db:"user_take_time,omitempty"`
	ClassName *string `json:"classname,omitempty" db:"classname,omitempty"`
}

// ExamRecordVo2 导出报表时使用
type ExamRecordVo2 struct {
	ExamName string `json:"exam_name,omitempty" db:"exam_name,omitempty"`
	Username string `json:"username,omitempty" db:"username,omitempty"`
	TermClass *string `json:"term_class,omitempty" db:"term_class,omitempty"`
	Name string `json:"name,omitempty" db:"name,omitempty"`
	Sid string `json:"sid,omitempty" db:"sid,omitempty"`
	CreateAt time.Time `json:"create_at,omitempty" db:"create_at,omitempty"`
	UpdateAt time.Time `json:"update_at,omitempty" db:"update_at,omitempty"`
	Ip       *string		`json:"ip,omitempty" db:"ip,omitempty"`
	UserScore *int		`json:"user_score,omitempty" db:"user_score,omitempty"`
	UserTakeTime *int 	`json:"user_take_time,omitempty" db:"user_take_time,omitempty"`
}