30 lines
586 B
Python
30 lines
586 B
Python
from pydantic import BaseModel, Field
|
|
from typing import Literal
|
|
|
|
FormatType = Literal[
|
|
"OnePager",
|
|
"Cheatsheet",
|
|
"MiniGuide",
|
|
"BeginnerGuide",
|
|
"IntermediateGuide",
|
|
"ExtendedGuide",
|
|
]
|
|
|
|
|
|
class GuideCreateRequest(BaseModel):
|
|
topic: str = Field(min_length=1, max_length=100)
|
|
format: FormatType
|
|
|
|
|
|
class GuideResponse(BaseModel):
|
|
id: str
|
|
topic: str
|
|
format: str
|
|
status: str
|
|
progress: str | None = None
|
|
error_msg: str | None = None
|
|
html_path: str | None = None
|
|
pdf_path: str | None = None
|
|
created_at: str
|
|
updated_at: str
|