use serde::{Deserialize, Serialize};
use validator::Validate;
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct KnowledgeItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub embedding_id: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub background: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icon: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub document_size: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub length: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub word_num: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct KnowledgeListData {
#[serde(skip_serializing_if = "Option::is_none")]
pub list: Option<Vec<KnowledgeItem>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct KnowledgeListResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<KnowledgeListData>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct KnowledgeDetailResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<KnowledgeItem>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct KnowledgeUsageCounts {
#[serde(skip_serializing_if = "Option::is_none")]
pub word_num: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub length: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct KnowledgeCapacityData {
#[serde(skip_serializing_if = "Option::is_none")]
pub used: Option<KnowledgeUsageCounts>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total: Option<KnowledgeUsageCounts>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct KnowledgeCapacityResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<KnowledgeCapacityData>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentFailInfo {
#[serde(skip_serializing_if = "Option::is_none")]
pub embedding_code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub embedding_msg: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub knowledge_type: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_separator: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sentence_size: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub length: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub word_num: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub embedding_stat: Option<i64>,
#[serde(rename = "failInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub fail_info: Option<DocumentFailInfo>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentDetailResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<DocumentItem>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentListData {
#[serde(skip_serializing_if = "Option::is_none")]
pub list: Option<Vec<DocumentItem>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentListResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<DocumentListData>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadUrlSuccessInfo {
#[serde(rename = "documentId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadUrlFailedInfo {
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "failReason")]
#[serde(skip_serializing_if = "Option::is_none")]
pub fail_reason: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadUrlData {
#[serde(rename = "successInfos")]
#[serde(skip_serializing_if = "Option::is_none")]
pub success_infos: Option<Vec<UploadUrlSuccessInfo>>,
#[serde(rename = "failedInfos")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_infos: Option<Vec<UploadUrlFailedInfo>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadUrlResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<UploadUrlData>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadFileSuccessInfo {
#[serde(rename = "documentId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub document_id: Option<String>,
#[serde(rename = "fileName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub file_name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadFileFailedInfo {
#[serde(rename = "fileName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub file_name: Option<String>,
#[serde(rename = "failReason")]
#[serde(skip_serializing_if = "Option::is_none")]
pub fail_reason: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadFileData {
#[serde(rename = "successInfos")]
#[serde(skip_serializing_if = "Option::is_none")]
pub success_infos: Option<Vec<UploadFileSuccessInfo>>,
#[serde(rename = "failedInfos")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_infos: Option<Vec<UploadFileFailedInfo>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentImageItem {
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cos_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentImageListData {
#[serde(skip_serializing_if = "Option::is_none")]
pub images: Option<Vec<DocumentImageItem>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct DocumentImageListResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<DocumentImageListData>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Validate)]
pub struct UploadFileResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<UploadFileData>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<u64>,
}