Files

47 lines
1.3 KiB
Python

from datetime import datetime
from pydantic import AwareDatetime, Field, HttpUrl
from app.schemas.catalog import Body, Category, Input, Patch, PositiveId, Read, Status, Title
class KnowledgeCreate(Input):
title: Title
category: Category = "未分类"
content: Body
source_url: HttpUrl | None = Field(default=None, max_length=1000)
source_id: PositiveId | None = None
document_id: PositiveId | None = None
collected_at: AwareDatetime | None = None
class KnowledgeUpdate(Patch):
title: Title | None = None
category: Category | None = None
content: Body | None = None
source_url: HttpUrl | None = Field(default=None, max_length=1000)
source_id: PositiveId | None = None
document_id: PositiveId | None = None
collected_at: AwareDatetime | None = None
class KnowledgeReview(Input):
expected_version: PositiveId
verification_status: Status
reviewer: str = Field(min_length=1, max_length=100)
verification_notes: str = Field(min_length=1, max_length=10_000)
class KnowledgeRead(Read):
title: str
category: str
content: str
source_url: str | None
verification_status: Status
source_id: int | None
document_id: int | None
collected_at: datetime | None
reviewer: str | None
reviewed_at: datetime | None
verification_notes: str | None