package crm

import (
	"eta/eta_bridge/global"
	"time"
)

// SysRole 角色表
type SysRole struct {
	RoleId       int       `gorm:"primaryKey;column:role_id;type:int(11);not null" json:"role_id""`
	RoleName     string    `gorm:"column:role_name;type:varchar(100)" json:"role_name"`
	RoleType     string    `gorm:"column:role_type;type:varchar(50)" json:"role_type"`            // 角色类型
	RoleTypeCode string    `gorm:"column:role_type_code;type:varchar(100)" json:"role_type_code"` // 角色类型编码
	CreateTime   time.Time `gorm:"column:create_time;type:datetime" json:"create_time"`
	ModifyTime   time.Time `gorm:"column:modify_time;type:datetime" json:"modify_time"`
	RoleLevel    int       `gorm:"column:role_level;type:tinyint(4);not null;default:0" json:"role_level"` // 角色等级:0-表示一级角色,每个账号只能绑定一个一级角色 ,1-表示二级角色,每个账号可以绑定多个二级 角色
}

func (m *SysRole) TableName() string {
	return "sys_role"
}

// Create 新增角色
func (m *SysRole) Create() (err error) {
	err = global.MYSQL["hz_crm"].Create(m).Error
	return
}

// Update 更新角色
func (m *SysRole) Update(cols []string) (err error) {
	err = global.MYSQL["hz_crm"].Model(m).Select(cols).Updates(m).Error
	return
}

// GetItemsByCondition 获取角色
func (m *SysRole) GetItemsByCondition(condition string, pars []interface{}) (items []*SysRole, err error) {
	err = global.MYSQL["hz_crm"].Where(condition, pars...).Find(&items).Error
	return
}

// GetSysRoleById 主键获取角色
func GetSysRoleById(roleId int) (item *SysRole, err error) {
	err = global.MYSQL["hz_crm"].Where("role_id = ?", roleId).First(&item).Error
	return
}

// DeleteRoleById 主键删除角色
func DeleteRoleById(roleId int) (err error) {
	sql := `DELETE FROM sys_role WHERE role_id = ? LIMIT 1`
	err = global.MYSQL["hz_crm"].Exec(sql, roleId).Error
	return
}