import "../base.api"

type (
	AvatarInfo {
		RequestId *string `json:"requestId"`
		SessionId *string `json:"SessionId"`
		Token *string  `json:"token"`
		Channel Channel `json:"channel"`
	}

	Channel {
		ChannelId *string `json:"channelId"`
		Token *string `json:"token"`
		Type *string `json:"type"`
		ExpiredTime *string `json:"expiredTime"`
		Nonce *string `json:"nonce"`
		UserId *string `json:"userId"`
		AppId *string `json:"appId"`
		UserInfoInChannel *string `json:"userInfoInChannel"`
		Gslb []string `json:"gslb"`
	}

	// start avatar request | 启动数字人
    AvatarConfigReq {
		// 名片 ID
		CardId  *uint64 `json:"card_id,optional"`
    }

    // start avatar response | 启动数字人
	AvatarConfigResp {
        BaseDataInfo

        // Agent information | Agent数据
        Data AvatarInfo `json:"data"`
    }
)

@server(
    jwt: Auth
    group: avatar
    middleware: Miniprogram
)

service Wechat {
	// get avatar configuration | 获取数字人配置信息
	@handler getApiAvatarConfig
	post /api/avatar/config (AvatarConfigReq) returns (AvatarConfigResp)
}