package entity

import (
	"errors"
	"time"
)

const (
	SINGEL_CHOICE = iota
	Completion
	MULTIPLE_CHOICE
	Judgement
)

// Subject 试题
type Subject 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"`
	// 0 禁用 1使用
	Status *int `json:"status,omitempty" db:"status,omitempty"`
	// 问题
	Question string `json:"question,omitempty" db:"question"`
	// 0 单选题 1填空题 2多选题 3判断题
	Type *int   `json:"type,omitempty" db:"type,omitempty"`
	OptA string `json:"opt_a,omitempty" db:"opt_a,omitempty"`
	OptB string `json:"opt_b,omitempty" db:"opt_b,omitempty"`
	OptC string `json:"opt_c,omitempty" db:"opt_c,omitempty"`
	OptD string `json:"opt_d,omitempty" db:"opt_d,omitempty"`
	// 回答 (ABCD), 单选、填空 多选 判断
	Answer string `json:"answer,omitempty" db:"answer,omitempty"`
	// 解析
	Analysis string `json:"analysis,omitempty" db:"analysis,omitempty"`
	// 题库id
	QbId int `json:"qb_id,omitempty" db:"qb_id,omitempty"`
}

func GetSubjectTypeName(tp int) (string, error) {
	switch tp {
	case SINGEL_CHOICE:
		return "单选题", nil
	case Completion:
		return "填空题", nil
	case MULTIPLE_CHOICE:
		return "判断题", nil
	case Judgement:
		return "多选题", nil
	default:
		return "", errors.New("excel格式错误")
	}
}
