实现了 Agent 和 Profile 数据类,添加了 AddAgent 界面

This commit is contained in:
weber
2025-07-31 15:22:34 +08:00
parent 6ec732b996
commit 29d2bb753f
28 changed files with 1181 additions and 72 deletions

View File

@@ -0,0 +1,72 @@
package com.aiosman.ravenow.entity
import androidx.paging.PagingSource
import androidx.paging.PagingState
import com.aiosman.ravenow.data.ListContainer
import com.aiosman.ravenow.data.AgentService
import com.aiosman.ravenow.data.ServiceException
import com.aiosman.ravenow.data.api.ApiClient
import java.io.IOException
/**
* 智能体
*/
data class AgentEntity(
val author: String,
val avatar: String,
val breakMode: Boolean,
val createdAt: String,
val desc: String,
val id: Int,
val isPublic: Boolean,
val openId: String,
val profile: ProfileEntity,
val title: String,
val updatedAt: String,
val useCount: Int
)
data class ProfileEntity(
val aiAccount: Boolean,
val avatar: String,
val banner: String,
val bio: String,
val chatAIId: String,
val id: Int,
val nickname: String,
val trtcUserId: String,
val username: String
)
class AgentLoaderExtraArgs(
)
class AgentLoader : DataLoader<AgentEntity,AgentLoaderExtraArgs>() {
override suspend fun fetchData(
page: Int,
pageSize: Int,
extra: AgentLoaderExtraArgs
): ListContainer<AgentEntity> {
val result = ApiClient.api.getAgent(
page = page,
pageSize = pageSize,
)
val data = result.body()?.let {
ListContainer(
list = it.list.map { it.toAgentEntity()},
total = it.total,
page = page,
pageSize = pageSize
)
}
if (data == null) {
throw ServiceException("Failed to get agent")
}
return data
}
}