import "../base.api"
import "./agent.api"

type (
    // The data of xunji service information | XunjiService信息
    XunjiServiceInfo {
        BaseIDInfo

        // Status 1: normal 2: ban | 状态 1 正常 2 禁用 
        Status  *uint8 `json:"status,optional"`

        // Xunji表ID 
        XunjiId  *uint64 `json:"xunjiId,optional"`

        // 智能体ID 
        AgentId  *uint64 `json:"agentId,optional"`

		// 模式信息
		AgentInfo *AgentInfo `json:"agentInfo,optional"`

        // organization_id | 租户ID 
        OrganizationId  *uint64 `json:"organizationId,optional"`

        // 微信ID 
        Wxid  *string `json:"wxid,optional"`

        // 大模型服务地址 
        ApiBase  *string `json:"apiBase,optional"`

        // 大模型服务密钥 
        ApiKey  *string `json:"apiKey,optional"`
    }

    // The response data of xunji service list | XunjiService列表数据
    XunjiServiceListResp {
        BaseDataInfo

        // XunjiService list data | XunjiService列表数据
        Data XunjiServiceListInfo `json:"data"`
    }

    // XunjiService list data | XunjiService列表数据
    XunjiServiceListInfo {
        BaseListInfo

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

    // Get xunji service list request params | XunjiService列表请求参数
    XunjiServiceListReq {
        PageInfo

        XunjiID *uint64 `json:"configId,optional"`
    }

    // XunjiService information response | XunjiService信息返回体
    XunjiServiceInfoResp {
        BaseDataInfo

        // XunjiService information | XunjiService数据
        Data XunjiServiceInfo `json:"data"`
    }
)

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

service Wechat {
    // Create xunji service information | 创建XunjiService
    @handler createXunjiService
    post /xunji_service/create (XunjiServiceInfo) returns (BaseMsgResp)

    // Update xunji service information | 更新XunjiService
    @handler updateXunjiService
    post /xunji_service/update (XunjiServiceInfo) returns (BaseMsgResp)

    // Delete xunji service information | 删除XunjiService信息
    @handler deleteXunjiService
    post /xunji_service/delete (IDsReq) returns (BaseMsgResp)

    // Get xunji service list | 获取XunjiService列表
    @handler getXunjiServiceList
    post /xunji_service/list (XunjiServiceListReq) returns (XunjiServiceListResp)

    // Get xunji service by ID | 通过ID获取XunjiService
    @handler getXunjiServiceById
    post /xunji_service (IDReq) returns (XunjiServiceInfoResp)
}
