package models

import (
	"github.com/beego/beego/v2/client/orm"
	"time"
)

// ChartPermission 报告权限表
type ChartPermission struct {
	ChartPermissionId   int       `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
	ChartPermissionName string    `description:"名称" json:"chart_permission_name"`
	PermissionName      string    `description:"权限名" json:"permission_name"`
	Sort                int       `description:"排序" json:"sort"`
	Enabled             int       `description:"是否可用" json:"enabled"`
	CreatedTime         time.Time `description:"创建时间" json:"created_time"`
	LastUpdatedTime     time.Time `description:"更新时间" json:"last_updated_time"`
	TeleconferenceSort  int       `description:"电话会类型排序" json:"teleconference_sort"`
	Remark              string    `description:"备注" json:"remark"`
	ClassifyName        string    `description:"分类名称" json:"classify_name"`
	ProductName         string    `description:"产品名称" json:"product_name"`
	ProductId           int       `description:"产品ID" json:"product_id"`
	ImageURL            string    `description:"图片地址" json:"image_url"`
	ShowType            int       `description:"1:查研观向小程序展示" json:"show_type"`
	IsOther             int       `description:"是否是其他，用于查研观向小程序后台展示" json:"is_other"`
	IsReport            int       `description:"是否是报告，用于查研观向小程序前台报告展示" json:"is_report"`
	CygxAuth            int       `description:"是否是权限，用于查研观向小程序前台权限校验" json:"cygx_auth"`
	YbImgUrl            string    `description:"研报小程序报告列表icon" json:"yb_img_url"`
	PriceDrivenState    int       `description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
	ParentId            int       `description:"父级权限id" json:"parent_id"`
	IsPublic            int       `description:"是否是公有权限1:公有权限，0私有权限" json:"is_public"`
	PermissionType      int       `description:"1主观，2客观" json:"permission_type"`
}

type ChartPermissionItem struct {
	PermissionId   int    `description:"品种权限ID"`
	PermissionName string `description:"品种权限名称"`
	ParentId       int    `description:"父级ID"`
	IsPublic       int    `description:"是否是公有权限1:公有权限，0私有权限" `
	Enabled        int    `description:"是否可用：1可用，0不可用" `
	Sort           int    `description:"排序"`
	CreateTime     string `description:"创建时间"`
	Child          []*ChartPermissionItem
}

// Update 更新
func (chartPermissionInfo *ChartPermission) Update(cols []string) (err error) {
	o := orm.NewOrmUsingDB("weekly")
	_, err = o.Update(chartPermissionInfo, cols...)
	return
}

type PermissionAddReq struct {
	PermissionName string `description:"品种权限名称"`
	ParentId       int    `description:"父级ID"`
	Enabled        int    `description:"是否可用 0禁用， 1启用"` //启用，禁用操作会关联二级品种
	IsPublic       int    `description:"是否是公有权限1:公有权限，0私有权限"`
}

type PermissionEditReq struct {
	PermissionId        int    `description:"品种权限Id"` // 如果ID存在，则是更新操作，否则是新增操作
	PermissionName      string `description:"品种权限名称"`
	Enabled             int    `description:"是否可用 0禁用， 1启用"` //启用，禁用操作会关联二级品种
	IsPublic            int    `description:"是否是公有权限1:公有权限，0私有权限"`
	PublicPermissionIds []int  `description:"公有权限的ID列表"` //一级品种没有公有私有属性
}

type PermissionMoveReq struct {
	PermissionId int `description:"品种id"`
	//	ParentChartPermissionId int `description:"父级品种id"`
	PrevPermissionId int `description:"上一个兄弟节点品种id"`
	NextPermissionId int `description:"下一个兄弟节点品种id"`
}
