import "../base.api"

type (
    // The data of alloc agent information | AllocAgent信息
    AllocAgentInfo {
        BaseIDInfo

        // user_id | 前台用户ID 
        UserId  *string `json:"userId,optional"`

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

        // agents | 分配的智能体IDs 
        Agents  []uint64 `json:"agents,optional"`

        // status | 状态 1-正常 2-禁用 
        Status  *int `json:"status,optional"`
    }

	AllocAgentQuery {
		// user_id | 前台用户ID
		UserId  *string `json:"userId,optional"`

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

    // The response data of alloc agent list | AllocAgent列表数据
    AllocAgentListResp {
        BaseDataInfo

        // AllocAgent list data | AllocAgent列表数据
        Data AllocAgentListInfo `json:"data"`
    }

    // AllocAgent list data | AllocAgent列表数据
    AllocAgentListInfo {
        BaseListInfo

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

    // Get alloc agent list request params | AllocAgent列表请求参数
    AllocAgentListReq {
        PageInfo

        // agents | 分配的智能体IDs 
        Agents  *string `json:"agents,optional"`
    }

    // AllocAgent information response | AllocAgent信息返回体
    AllocAgentInfoResp {
        BaseDataInfo

        // AllocAgent information | AllocAgent数据
        Data AllocAgentInfo `json:"data"`
    }
)

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

service Wechat {
    // Create alloc agent information | 创建AllocAgent
    @handler createAllocAgent
    post /alloc_agent/create (AllocAgentInfo) returns (BaseMsgResp)

    // Update alloc agent information | 更新AllocAgent
    @handler updateAllocAgent
    post /alloc_agent/update (AllocAgentInfo) returns (BaseMsgResp)

    // Delete alloc agent information | 删除AllocAgent信息
    @handler deleteAllocAgent
    post /alloc_agent/delete (IDsReq) returns (BaseMsgResp)

    // Get alloc agent list | 获取AllocAgent列表
    @handler getAllocAgentList
    post /alloc_agent/list (AllocAgentListReq) returns (AllocAgentListResp)

    // Get alloc agent by ID | 通过ID获取AllocAgent
    @handler getAllocAgentById
    post /alloc_agent (IDReq) returns (AllocAgentInfoResp)

	// Get alloc agent by ID | 通过ID获取AllocAgent
	@handler queryAllocAgent
	post /alloc_agent/query (AllocAgentQuery) returns (AllocAgentInfoResp)

	// Get alloc agent by ID | 通过ID获取AllocAgent
	@handler doAllocAgent
	post /alloc_agent/alloc (AllocAgentInfo) returns (BaseMsgResp)
}