Files
voidea/app/schemas/idea.py
T

73 lines
1.6 KiB
Python

"""Idea schemas for VoIdea API."""
from datetime import datetime
from typing import Optional
from pydantic import BaseModel, Field
class IdeaCreate(BaseModel):
title: str = Field(min_length=1, max_length=255)
content: str = Field(min_length=1)
tags: Optional[list[str]] = None
is_public: bool = False
class IdeaUpdate(BaseModel):
title: Optional[str] = Field(None, min_length=1, max_length=255)
content: Optional[str] = Field(None, min_length=1)
status: Optional[str] = None
tags: Optional[list[str]] = None
is_public: Optional[bool] = None
funnel_status: Optional[str] = None
class IdeaResponse(BaseModel):
id: str
user_id: str
title: str
content: str
status: str
tags: Optional[list[str]] = None
is_public: bool
public_slug: Optional[str] = None
funnel_status: Optional[str] = None
created_at: datetime
updated_at: datetime
class FunnelTransitionRequest(BaseModel):
target_status: str = Field(min_length=1, max_length=20)
AI_AGENT_ROLES = [
"coordinator",
"task_organizer",
"business_analyst",
"legal_expert",
"financial_consultant",
"solution_architect",
"tester",
"ui_designer",
"smm_specialist",
"life_coach",
"accessibility_expert",
]
class IdeaAnalyzeResponse(BaseModel):
status: str = "started"
idea_id: str
task_count: int = 0
tasks: list[dict] = []
class AnalysisResultResponse(BaseModel):
id: str
role: str
status: str
message: str | None = None
success: bool
duration_ms: int
created_at: str | None = None