File size: 857 Bytes
f5e7f79
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from pydantic import BaseModel, HttpUrl
from typing import List, Optional
from datetime import datetime

class PageDetail(BaseModel):
    page_url: HttpUrl
    load_time_ms: Optional[float] = None  
    schemas: Optional[bool] = None   
    issues_found: Optional[List[str]] = []  

class IssueDetail(BaseModel):
    page_url: Optional[HttpUrl] = None
    duplicate_with: Optional[List[HttpUrl]] = None
    snippet: Optional[str] = None
    count: Optional[int] = None

class Issue(BaseModel):
    type: str  
    description: str
    details: Optional[IssueDetail] = None

class ReportCreate(BaseModel):
    user_id: str
    website: HttpUrl
    pages: Optional[List[PageDetail]] = []  
    issues: List[Issue] = []
    recommendations: List[str] = []

class ReportResponse(ReportCreate):
    id: str
    audit_date: datetime
    status: str = "completed"