package models

type Role struct {
	Id           int    `gorm:"PRIMARY_KEY;AUTO_INCREMENT"`
	RoleName     string `gorm:"column:role_name"`
	RoleIntro    string `gorm:"column:role_introduction"`
	OrgId        int    `gorm:"column:org_id"`
	AppId        int    `gorm:"column:app_id"`
	Creator      int
	IsSuperAdmin bool  `gorm:"column:is_super_admin"`
	Status       int8  // 状态 0.无效 1.有效 2.禁用
	CreateTime   int64 `gorm:"column:ctime"` // 创建时间
	ModifyTime   int64 `gorm:"column:mtime"` // 修改时间
}

func (Role) TableName() string {
	return "sgj_user_role"
}

type Purview struct {
	Id            int    `gorm:"PRIMARY_KEY;AUTO_INCREMENT" json:"id"`
	Parentid      int    `json:"pid"`                                    // 父级ID
	Module        int8   `json:"module"`                                 // 所属应用类型 1.病友经营；2.科普号；3.血透经营；4.慢病管理；
	Name          string `json:"name"`                                   // 规则名称（也是菜单名）
	Urlfor        string `json:"urlfor"`                                 // 规则唯一英文标识，(Controller.Method)
	MenuIconClass string `gorm:"menu_icon_class" json:"menu_icon_class"` // 菜单图标的 css 样式
	Listorder     int    `json:"listorder"`                              // 排序ID
	Status        int8   `json:"status"`                                 // 状态 0.无效 1.有效 2.禁用
	CreateTime    int64  `gorm:"column:ctime" json:"ctime"`              // 创建时间
	ModifyTime    int64  `gorm:"column:mtime" json:"mtime"`              // 修改时间

	Link   string     `gorm:"-" json:"link"`   // urlfor 解析后的链接
	Childs []*Purview `gorm:"-" json:"childs"` // 子节点
}

func (Purview) TableName() string {
	return "sgj_user_purview"
}

type RolePurview struct {
	Id         int `gorm:"PRIMARY_KEY;AUTO_INCREMENT"`
	OrgId      int
	AppId      int
	RoleId     int
	PurviewIds string
	Status     int8  // 状态 0.无效 1.有效 2.禁用
	CreateTime int64 `gorm:"column:ctime"` // 创建时间
	ModifyTime int64 `gorm:"column:mtime"` // 修改时间
}

func (RolePurview) TableName() string {
	return "sgj_user_role_purview"
}
