Step 11:百问百答(FAQ / Knowledge Base)

This commit is contained in:
Cheng Zhou
2025-12-16 19:50:44 +08:00
parent 96f7e35713
commit a54d7faf19
68 changed files with 553 additions and 1 deletions
+64
View File
@@ -0,0 +1,64 @@
import uuid
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class CategoryCreate(BaseModel):
study_id: Optional[uuid.UUID] = None
name: str
description: Optional[str] = None
sort_order: int = 0
is_active: bool = True
class CategoryUpdate(BaseModel):
name: Optional[str] = None
description: Optional[str] = None
sort_order: Optional[int] = None
is_active: Optional[bool] = None
class CategoryRead(BaseModel):
id: uuid.UUID
study_id: Optional[uuid.UUID]
name: str
description: Optional[str]
sort_order: int
is_active: bool
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True)
class FaqCreate(BaseModel):
study_id: Optional[uuid.UUID] = None
category_id: uuid.UUID
question: str
answer: str
keywords: Optional[str] = None
class FaqUpdate(BaseModel):
question: Optional[str] = None
answer: Optional[str] = None
keywords: Optional[str] = None
is_active: Optional[bool] = None
class FaqRead(BaseModel):
id: uuid.UUID
study_id: Optional[uuid.UUID]
category_id: uuid.UUID
question: str
answer: str
keywords: Optional[str]
version: int
is_active: bool
created_by: uuid.UUID
created_at: datetime
updated_at: datetime
model_config = ConfigDict(from_attributes=True)