package models

import "github.com/beego/beego/v2/client/orm"

// ChartPermissionSearchKeyWordMapping 权限相关
type ChartPermissionSearchKeyWordMapping struct {
	Id                 int    `description:"id" json:"-"`
	ChartPermissionId  int    `description:"权限id"`
	KeyWord            string `description:"二级分类名称"`
	From               string `description:"类型标识" json:"-"`
	TacticType         string `description:"策略表type字段值" json:"-"`
	TeleconferenceSort int    `description:"电话会类型排序" json:"-"`
}

func GetPermission(classifyNameSecond string) (items []*ChartPermissionSearchKeyWordMapping, err error) {
	o := orm.NewOrm()
	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.key_word=? `
	_, err = o.Raw(sql, classifyNameSecond).QueryRows(&items)
	return
}

func AddChartPermissionChapterMapping(chartPermissionId int, reportId int64) (err error) {
	sql := `INSERT INTO chart_permission_chapter_mapping (chart_permission_id, report_chapter_type_id,research_type)
           VALUES(?,?,?)`
	o := orm.NewOrm()
	_, err = o.Raw(sql, chartPermissionId, reportId, "rddp").Exec()
	return
}

func RemoveChartPermissionChapterMapping(reportId int64) (err error) {
	sql := ` DELETE FROM chart_permission_chapter_mapping WHERE research_type=? AND report_chapter_type_id=? `
	o := orm.NewOrm()
	_, err = o.Raw(sql, "rddp", reportId).Exec()
	return
}

type ChartPermissionMappingIdName struct {
	PermissionId   int
	PermissionName string
}

func GetChartPermissionNameFromMappingByKeyword(keyword string, source string) (list []*ChartPermissionMappingIdName, err error) {
	o := orm.NewOrm()
	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.key_word = ? "
	_, err = o.Raw(sql, source, keyword).QueryRows(&list)

	return
}