Files
backend/internal/dto/knowledge_base.go
T
2026-07-15 22:42:31 +08:00

99 lines
3.1 KiB
Go

package dto
import (
"time"
"github.com/XingfenD/yoresee_doc/internal/model"
)
type KnowledgeBaseBase struct {
ExternalID string `json:"external_id"`
Name string `json:"name"`
Description string `json:"description"`
Cover string `json:"cover"`
IsPublic bool `json:"is_public"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
DeletedAt time.Time `json:"deleted_at"`
}
type KnowledgeBaseExtend struct {
CreatorUserExternalID string `json:"creator_user_external_id"`
CreatorName string `json:"creator_name"`
DocumentsCount int64 `json:"documents_count"`
}
type KnowledgeBaseResponse struct {
KnowledgeBaseBase
KnowledgeBaseExtend
}
func NewKnowledgeBaseResponseFromModel(kb *model.KnowledgeBase, kbExtend *KnowledgeBaseExtend) *KnowledgeBaseResponse {
response := &KnowledgeBaseResponse{
KnowledgeBaseBase: KnowledgeBaseBase{
ExternalID: kb.ExternalID,
Name: kb.Name,
Description: kb.Description,
Cover: kb.Cover,
IsPublic: kb.IsPublic,
CreatedAt: kb.CreatedAt,
UpdatedAt: kb.UpdatedAt,
DeletedAt: kb.DeletedAt,
},
}
if kbExtend != nil {
response.KnowledgeBaseExtend = KnowledgeBaseExtend{
CreatorUserExternalID: kbExtend.CreatorUserExternalID,
CreatorName: kbExtend.CreatorName,
DocumentsCount: kbExtend.DocumentsCount,
}
}
return response
}
type CreateRecentKnowledgeBaseRequest struct {
UserExternalID string `json:"user_external_id"`
KnowledgeBaseExternalID string `json:"knowledge_base_external_id"`
AssessTime time.Time `json:"assess_time"`
}
type CreateKnowledgeBaseRequest struct {
CreatorExternalID string `json:"creator_external_id"`
Name string `json:"name"`
Description string `json:"description"`
Cover string `json:"cover"`
IsPublic bool `json:"is_public"`
}
type CreateKnowledgeBaseResponse struct {
ExternalID string `json:"external_id"`
}
type ListRecentKnowledgeBasesRequest struct {
UserExternalID string `json:"user_external_id"`
StartTime *time.Time `json:"start_time,omitempty"`
EndTime *time.Time `json:"end_time,omitempty"`
Pagination Pagination `json:"pagination"`
}
type KnowledgeBaseListByExternalRequest struct {
CreatorExternalID string `json:"creator_external_id"`
FilterArgs *KnowledgeBaseListFilterArgs `json:"filter_args"`
SortArgs SortArgs `json:"sort_args"`
Pagination Pagination `json:"pagination"`
}
type KnowledgeBaseGetByExternalIDRequest struct {
KnowledgeBaseExternalID string `json:"knowledge_base_external_id"`
}
type KnowledgeBaseListFilterArgs struct {
IsPublic *bool `json:"is_public"`
NameKeyword *string `json:"name_keyword"`
CreateTimeRangeStart *string `json:"create_time_range_start"`
CreateTimeRangeEnd *string `json:"create_time_range_end"`
UpdateTimeRangeStart *string `json:"update_time_range_start"`
UpdateTimeRangeEnd *string `json:"update_time_range_end"`
}