package protocol

//RequestRoleAdd 添加角色信息
type RequestRoleAdd struct {
	CompanyID int64  `json:"company_id"`
	Pid       int64  `json:"pid"`
	Name      string `json:"name"`
	Types     int8   `json:"types"`
	// Descript  string `json:"descript"`
}

//RequestRoleDelete 删除一个角色数据
type RequestRoleDelete struct {
	CompanyID int64 `json:"company_id"`
	RoleID    int64 `json:"id"`
}

//RequestRoleEdit 编辑角色信息入参
type RequestRoleEdit struct {
	ID int64 `json:"id"`
	RequestRoleAdd
}

//ResponseRoleInfo 响应数据
type ResponseRoleInfo struct {
	ID    int64  `json:"id"`
	Name  string `json:"name"`
	Types int8   `json:"type"`
}

//RequestRoleList 分页获取角色列表
type RequestRoleList struct {
	RequestPageInfo
	CompanyId int    `json:"company_id"`
	Keyword   string `json:"keyword"` // 搜索关键字
}

type RoleInfo struct {
	Id             int64  `json:"id" orm:"column(id)"`
	Name           string `json:"name" orm:"column(name)"`
	IsDefault      int8   `json:"is_default" orm:"column(is_default)"`
	Pid            int64  `json:"groupId" orm:"column(pid)"`
	Types          int8   `json:"types" orm:"column(types)"`
	InDefaultGroup int    `json:"in_default_group"`
}

type RoleGroup struct {
	RoleInfo
	Roles []RoleInfo `json:"roles"`
}

type RequestRolePermission struct {
	CompanyID    int   `json:"company_id"`
	RoleID       int   `json:"role_id"`
	PermissionID []int `json:"permission_id"`
}

type PermissionItem struct {
	Id           int64  `json:"id"`
	Name         string `json:"name"`
	Icon         string `json:"icon"`
	ParentId     int64  `json:"parent_id"`
	SeniorStatus int8   `json:"senior_status"`
	Sort         int    `json:"sort"`
	Code         string `json:"code"`
}

type ResponsePermissionList struct {
	Lists []PermissionItem `json:"lists"`
}

//
type ResponseRoleMenus struct {
	RoleId   int64   `json:"role_id"`
	RoleName string  `json:"role_name"`
	MenuId   []int64 `json:"menu_ids"`
}

type ResponseUserHasMenu struct {
	Id           int64  `json:"id" orm:"column(id)"`
	Name         string `json:"name" orm:"column(name)"`
	Icon         string `json:"icon" orm:"column(icon)"`
	ParentId     int64  `json:"parent_id" orm:"column(parent_id)"`
	SeniorStatus int8   `json:"senior_status" orm:"column(senior_status)"`
	Code         string `json:"code" orm:"column(code)"`
	Sort         int    `json:"sort" orm:"column(sort)"`
	Status       int    `json:"status" orm:"-"`
}

func (c *ResponseUserHasMenu) StatusYes() {
	c.Status = 1
}

func (c *ResponseUserHasMenu) StatusNo() {
	c.Status = 0
}