30 lines
674 B
Python
30 lines
674 B
Python
from __future__ import annotations
|
|
|
|
from typing import Optional, List
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class FontEntry(BaseModel):
|
|
name: str
|
|
status: str # 'safe' | 'professional' | 'unknown'
|
|
substitute: Optional[str] = None
|
|
substitute_quality: Optional[str] = None
|
|
used_for: str = ''
|
|
|
|
|
|
class ScanWarning(BaseModel):
|
|
type: str
|
|
severity: str # 'info' | 'warning' | 'error'
|
|
page: Optional[int] = None
|
|
message: str
|
|
|
|
|
|
class ScanReport(BaseModel):
|
|
session_id: str = ''
|
|
pages: int
|
|
stories: int
|
|
images: int
|
|
tables: int
|
|
fonts: List[FontEntry] = []
|
|
warnings: List[ScanWarning] = []
|