nex_basse/backend/app/schemas/prompt.py

52 lines
1.4 KiB
Python

from pydantic import BaseModel, Field, field_validator
from datetime import datetime
from typing import Optional
class PromptTemplateBase(BaseModel):
name: str = Field(..., max_length=100)
category: str = Field("summary", max_length=50)
content: str
description: Optional[str] = Field(None, max_length=255)
sort_order: int = 0
status: int = 1
class PromptTemplateCreate(PromptTemplateBase):
is_system: bool = False
class PromptTemplateUpdate(BaseModel):
name: Optional[str] = Field(None, max_length=100)
category: Optional[str] = Field(None, max_length=50)
content: Optional[str] = None
description: Optional[str] = Field(None, max_length=255)
sort_order: Optional[int] = None
status: Optional[int] = None
is_system: Optional[bool] = None
class PromptTemplateOut(PromptTemplateBase):
id: int
user_id: Optional[int]
is_system: bool
is_active: bool = True # From UserPromptConfig
user_sort_order: Optional[int] = None # From UserPromptConfig
created_at: datetime
updated_at: datetime
@field_validator('is_system', 'is_active', mode='before')
@classmethod
def parse_bool_fields(cls, v):
if isinstance(v, int):
return bool(v)
return v
class Config:
from_attributes = True
class UserPromptConfigUpdate(BaseModel):
is_active: Optional[bool] = None
user_sort_order: Optional[int] = None