package role

import (
	"github.com/veypi/vbase/cfg"
	"github.com/veypi/vbase/models"
	"github.com/veypi/vigo"
)

type createOpts struct {
	AppID string `src:"path@app_id" desc:"应用ID"`      // 应用 ID
	Name  string `json:"name" src:"json" desc:"角色名称"` // 角色名称
	Des   string `json:"des" src:"json" desc:"角色描述"`  // 角色描述
}

var _ = Router.Post("/", "创建角色", createRole)

func createRole(x *vigo.X, opts *createOpts) (*models.Role, error) {
	// 创建角色
	role := &models.Role{
		AppID: opts.AppID,
		Name:  opts.Name,
		Des:   opts.Des,
	}

	// 保存到数据库
	if err := cfg.DB().Create(role).Error; err != nil {
		return nil, err
	}

	return role, nil
}
