import "../base.api"

type (
    // The data of wx card information | WxCard信息
    WxCardInfo {
        BaseIDInfo

        // user表ID 
        UserId  *uint64 `json:"userId,optional"`

        // wx表ID 
        WxUserId  *uint64 `json:"wxUserId,optional"`

        // 头像 
        Avatar  *string `json:"avatar,optional"`

        // logo 
        Logo  *string `json:"logo,optional"`

        // 名称 
        Name  *string `json:"name,optional"`

        // 公司 
        Company  *string `json:"company,optional"`

        // 地址 
        Address  *string `json:"address,optional"`

        // 手机号 
        Phone  *string `json:"phone,optional"`

        // 公众号 
        OfficialAccount  *string `json:"officialAccount,optional"`

        // 微信号 
        WechatAccount  *string `json:"wechatAccount,optional"`

        // 邮箱 
        Email  *string `json:"email,optional"`

        // 聊天信息 
        ApiBase  *string `json:"apiBase,optional"`
		ApiKey  *string `json:"apiKey,optional"`

        // AI信息 
        AiInfo  *string `json:"aiInfo,optional"`

        // 个人介绍 
        Intro  *string `json:"intro,optional"`
	
		ShowChat *bool `json:"showChat,optional"`
		ShowAi *bool `json:"showAi,optional"`
		IsVip *bool `json:"isVip,optional"`
    }

	WxCardSimpleInfo {
		ID *uint64 `json:"id,optional"`
		// 头像
		Avatar  *string `json:"avatar,optional"`

		// 名称
		Name  *string `json:"name,optional"`

		Type *string `json:"type,optional"`
	}

    // The response data of wx card list | WxCard列表数据
    WxCardListResp {
        BaseDataInfo

        // WxCard list data | WxCard列表数据
        Data WxCardListInfo `json:"data"`
    }

    // WxCard list data | WxCard列表数据
    WxCardListInfo {
        BaseListInfo

        // The API list data | WxCard列表数据
        Data  []WxCardInfo  `json:"data"`
    }

    // Get wx card list request params | WxCard列表请求参数
    WxCardListReq {
        PageInfo

        // 头像 
        Avatar  *string `json:"avatar,optional"`

        // logo 
        Logo  *string `json:"logo,optional"`

        // 名称 
        Name  *string `json:"name,optional"`
    }

    // WxCard information response | WxCard信息返回体
    WxCardInfoResp {
        BaseDataInfo

        // WxCard information | WxCard数据
        Data WxCardInfo `json:"data"`
    }

	QrcodeReq {
		Path string `form:"path"`
		Width int64 `form:"width"`
		EnvVersion string `form:"envVersion"`
	}
)

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

service Wechat {
	// Get wx card by ID | 通过ID获取WxCard
	@handler getApiWxCardDetail
	post /api/card/detail (IDReq) returns (WxCardInfoResp)
}

@server(
	group: wxcard
)

service Wechat {
	// Get wx card share qrcode | 通过小程序分享二维码
	@handler getApiWxCardQrcode
	get /api/card/qrcode (QrcodeReq)
}

@server(
    jwt: Auth
    group: wxcard
    middleware: Authority
)

service Wechat {
    // Create wx card information | 创建WxCard
    @handler createWxCard
    post /wx_card/create (WxCardInfo) returns (BaseMsgResp)

    // Update wx card information | 更新WxCard
    @handler updateWxCard
    post /wx_card/update (WxCardInfo) returns (BaseMsgResp)

    // Delete wx card information | 删除WxCard信息
    @handler deleteWxCard
    post /wx_card/delete (IDsReq) returns (BaseMsgResp)

    // Get wx card list | 获取WxCard列表
    @handler getWxCardList
    post /wx_card/list (WxCardListReq) returns (WxCardListResp)

    // Get wx card by ID | 通过ID获取WxCard
    @handler getWxCardById
    post /wx_card (IDReq) returns (WxCardInfoResp)
}
