package dao

type RoleMenu struct {
	ID     int64 `gorm:"primary_key" json:"id"`     //编号
	MenuId int64 `gorm:"type:bigint" json:"menuId"` //菜单id
	RoleId int64 `gorm:"type:bigint" json:"roleId"` //角色id
}

func (RoleMenu) TableName() string {
	return "role_menu"
}

func (c *RoleMenu) Save() error {
	return Db.Debug().Model(&c).Save(&c).Error
}

func (c *RoleMenu) BatchSave(menus []RoleMenu) error {
	return Db.Debug().Model(&c).Save(&menus).Error
}

func (c *RoleMenu) DeleteRoleIds(roleIds []int64) error {
	return Db.Debug().Model(&c).Where("role_id in ?", roleIds).Delete(&c).Error
}

func (c *RoleMenu) GetMenusByRole() ([]RoleMenu, error) {
	var menus []RoleMenu
	err := Db.Debug().Table("role_menu").Select("distinct menu_id").Where("role_id = ?", c.RoleId).Find(&menus).Error
	return menus, err
}

func (c *RoleMenu) GetAll() ([]RoleMenu, error) {
	var menus []RoleMenu
	err := Db.Debug().Table("role_menu").Select("distinct menu_id").Find(&menus).Error
	return menus, err
}
