feat: Add base project structure with API and web components

This commit is contained in:
Ke Sun
2025-12-02 20:28:01 +08:00
parent f3de6d6cc9
commit c1adc62ec6
817 changed files with 111226 additions and 106 deletions

View File

@@ -0,0 +1,37 @@
from pydantic import BaseModel, Field, field_serializer, ConfigDict
import datetime
import uuid
from .knowledge_schema import Knowledge
from .workspace_schema import Workspace
from .user_schema import User
class KnowledgeShareBase(BaseModel):
source_kb_id: uuid.UUID
source_workspace_id: uuid.UUID | None = None
target_kb_id: uuid.UUID | None = None
target_workspace_id: uuid.UUID
shared_by: uuid.UUID | None = None
class KnowledgeShareCreate(KnowledgeShareBase):
pass
class KnowledgeShare(KnowledgeShareBase):
id: uuid.UUID
created_at: datetime.datetime
updated_at: datetime.datetime
target_kb: Knowledge
target_workspace: Workspace
shared_user: User
@field_serializer("created_at", when_used="json")
def _serialize_created_at(self, dt: datetime.datetime):
return int(dt.timestamp() * 1000) if dt else None
model_config = ConfigDict(from_attributes=True)
@field_serializer("updated_at", when_used="json")
def _serialize_updated_at(self, dt: datetime.datetime):
return int(dt.timestamp() * 1000) if dt else None