package models

import (
	"github.com/beego/beego/v2/client/orm"
	"github.com/rdlucklib/rdluck_tools/paging"
	"hongze/hongze_cygx/utils"
	"time"
)

type AddCygxQuestionnaireThemeReq struct {
	QuestionnaireThemeId int    `description:"ID"`
	ActivityTheme        string `description:"活动主题"`
	DisabledRadio        bool   `description:"是否选择,配合前端添加的字段"`
}

type CygxQuestionnaireResp struct {
	QuestionnaireId  int    `description:"ID"`
	ActivityTypeId   int    `description:"活动类型id"`
	ActivityTypeName string `description:"活动类型名称"`
	Content          string `description:"内容"`
	EndTime          string `description:"截止日期"`
	PublishTime      string `description:"发布时间"`
	MaxChooseTotal   int    `description:"最多可选几项"`
	State            string `description:"状态"`
	ListTheme        []*AddCygxQuestionnaireThemeReq
}

type GetCygxQuestionnaireResp struct {
	Paging *paging.PagingItem `description:"分页数据"`
	List   []*CygxQuestionnaireResp
}

type GetCygxQuestionnaireDetailResp struct {
	Detail *CygxQuestionnaireResp
}

// 通过ID获取详情
func GetCygxQuestionnaireDetail(questionnaireId int) (item *CygxQuestionnaireResp, err error) {
	o := orm.NewOrm()
	sql := `SELECT * FROM cygx_questionnaire  WHERE questionnaire_id=? `
	err = o.Raw(sql, questionnaireId).QueryRow(&item)
	return
}

// 获取数量
func GetCygxQuestionnaireCount(condition string, pars []interface{}) (count int, err error) {
	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_questionnaire as art WHERE 1= 1  `
	if condition != "" {
		sqlCount += condition
	}
	o := orm.NewOrm()
	err = o.Raw(sqlCount, pars).QueryRow(&count)
	return
}

// 通过ID获取详情
func GetCygxQuestionnaireDetailBestNew() (item *CygxQuestionnaireResp, err error) {
	o := orm.NewOrm()
	sql := `SELECT * FROM cygx_questionnaire WHERE end_time >= ? ORDER BY publish_time DESC LIMIT 1     `
	err = o.Raw(sql, time.Now().Format(utils.FormatDate)).QueryRow(&item)
	return
}

// 列表
func GetCygxQuestionnaireThemeListByQuestionnaireId(questionnaireId int) (items []*AddCygxQuestionnaireThemeReq, err error) {
	o := orm.NewOrm()
	sql := `SELECT * FROM cygx_questionnaire_theme as art WHERE questionnaire_id = ? `
	_, err = o.Raw(sql, questionnaireId).QueryRows(&items)
	return
}