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)