File size: 2,133 Bytes
b0538ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from pydantic import BaseModel
from typing import List, Optional, Any
from datetime import datetime

# Pydantic models
class DeepAnalysisReportCreate(BaseModel):
    report_uuid: str
    user_id: Optional[int] = None
    goal: str
    status: str = "completed"
    deep_questions: Optional[str] = None
    deep_plan: Optional[str] = None
    summaries: Optional[List[Any]] = None
    analysis_code: Optional[str] = None
    plotly_figures: Optional[List[Any]] = None
    synthesis: Optional[List[Any]] = None
    final_conclusion: Optional[str] = None
    html_report: Optional[str] = None
    report_summary: Optional[str] = None
    progress_percentage: Optional[int] = 100
    duration_seconds: Optional[int] = None
    # Credit and error tracking
    credits_consumed: Optional[int] = 0
    error_message: Optional[str] = None
    model_provider: Optional[str] = "anthropic"
    model_name: Optional[str] = "claude-sonnet-4-20250514"
    total_tokens_used: Optional[int] = 0
    estimated_cost: Optional[float] = 0.0
    steps_completed: Optional[List[str]] = None  # Array of completed step names

class DeepAnalysisReportResponse(BaseModel):
    report_id: int
    report_uuid: str
    user_id: Optional[int]
    goal: str
    status: str
    start_time: datetime
    end_time: Optional[datetime]
    duration_seconds: Optional[int]
    report_summary: Optional[str]
    created_at: datetime
    updated_at: datetime

class DeepAnalysisReportDetailResponse(DeepAnalysisReportResponse):
    deep_questions: Optional[str]
    deep_plan: Optional[str]
    summaries: Optional[List[Any]]
    analysis_code: Optional[str]
    plotly_figures: Optional[List[Any]]
    synthesis: Optional[List[Any]]
    final_conclusion: Optional[str]
    html_report: Optional[str]
    progress_percentage: Optional[int]
    # Credit and error tracking
    credits_consumed: Optional[int]
    error_message: Optional[str]
    model_provider: Optional[str] = "anthropic"
    model_name: Optional[str] = "claude-sonnet-4-20250514"
    total_tokens_used: Optional[int]
    estimated_cost: Optional[float]
    steps_completed: Optional[List[str]] = None