webscrapercli-wbi8nl/app/schemas/scrape_result.py

65 lines
1.2 KiB
Python

from datetime import datetime
from typing import Optional, Dict, Any, List
from pydantic import BaseModel
class ScrapeResultBase(BaseModel):
"""
Base schema for scrape result data.
"""
job_id: int
content_type: Optional[str] = None
headers: Optional[Dict[str, Any]] = None
extracted_data: Optional[Dict[str, Any]] = None
class ScrapeResultCreate(ScrapeResultBase):
"""
Schema for creating a new scrape result.
"""
html_content: Optional[str] = None
class ScrapeResultUpdate(BaseModel):
"""
Schema for updating a scrape result.
"""
content_type: Optional[str] = None
headers: Optional[Dict[str, Any]] = None
html_content: Optional[str] = None
extracted_data: Optional[Dict[str, Any]] = None
class ScrapeResultInDBBase(ScrapeResultBase):
"""
Base schema for scrape result in database.
"""
id: int
created_at: datetime
html_content: Optional[str] = None
class Config:
orm_mode = True
class ScrapeResult(ScrapeResultInDBBase):
"""
Schema for returned scrape result.
"""
pass
class ScrapeResultList(BaseModel):
"""
Schema for a list of scrape results.
"""
results: List[ScrapeResult]
total: int