package gd_admin

// 管理员注册
type AdminRegisterReq struct {
	AdminName   string `json:"admin_name" description:"管理员姓名"`
	AdminPasswd string `json:"admin_passwd" description:"管理员密码"`
	AdminPhone  string `json:"admin_phone"`
	AdminEmail  string `json:"admin_email"`
	GroupId     int    `json:"level" description:"分组id"`
	NodeId      string `json:"node_id"`
}

type AdminRegisterReply struct {
	Id int64 `json:"id"`
}

// 删除管理员
type AdminDeleteReq struct {
	AdminId int64 `json:"admin_id" description:"管理员唯一id"`
}

type AdminDeleteReply struct {
}

// 修改管理员信息
type AdminModifyReq struct {
	AdminId     int64  `json:"admin_id"`
	AdminPasswd string `json:"admin_passwd" description:"管理员密码"`
	AdminPhone  string `json:"admin_phone" description:"联系电话"`
	AdminEmail  string `json:"admin_email" description:"邮箱"`
	GroupId     int    `json:"level" description:"分组id"`
	NodeId      string `json:"node_id"`
}

type AdminModifyReply struct {
}

// 查看管理员列表
type AdminGetAllReq struct {
	PageSize   int64  `json:"page_size" description:"page大小"`
	PageNumber int64  `json:"page_number" description:"页码"`
	Search     string `json:"search"`
}

type GetAdminList struct {
	Id         int64  `json:"id" description:"id"`
	AdminName  string `json:"admin_name" description:"名称"`
	AdminPhone string `json:"admin_phone" description:"电话"`
	AdminEmail string `json:"admin_email" description:"邮件"`
	Status     int    `json:"status" description:"账户状态：0 未启用， 1 启用"`
	GroupName  string `json:"group_name" description:"分组名"`
	CreatedAt  string `json:"created_at" description:"创建时间"`
}

type AdminGetAllReply struct {
	Total      int64          `json:"total" description:"总数"`
	PageSize   int64          `json:"page_size" description:"页大小"`
	PageNumber int64          `json:"page_number" description:"页号"`
	Admins     []GetAdminList `json:"admins"`
}

// 管理员登录
type AdminLoginReq struct {
	AdminName   string `json:"admin_name" description:"管理员姓名"`
	AdminPasswd string `json:"admin_passwd" description:"管理员密码"`
	Uid         int64  `json:"uid"`
}

type AdminLoginReply struct {
	AdminId  int64               `json:"admin_id"`
	Level    int64               `json:"level"`
	Token    string              `json:"token"`
	Access   map[string][]string `json:"access"`
	Resource []string            `json:"resource"`
}

// 修改管理状态
type UpdateStatusReq struct {
	AdminId int64 `json:"admin_id"`
}

type UpdateStatusReply struct {
	Status int `json:"status"`
}

// 获取管理员信息
type GetInfoReq struct {
	Uid int64 `json:"uid"`
}

type RbcInfo struct {
	Name    string   `json:"name"`
	GroupId int64    `json:"group_id"`
	NodeId  []string `json:"node_id"`
}

type GetInfoReply struct {
	AdminName     string  `json:"admin_name"`
	AdminPhone    string  `json:"admin_phone"`
	AdminPassword string  `json:"admin_password"`
	AdminEmail    string  `json:"admin_email"`
	RbcInfo       RbcInfo `json:"rbc_info"`
}
