from pydantic import BaseModel, Field from typing import List, Optional from uuid import UUID from datetime import datetime class ScrapeRequest(BaseModel): username: str seller_id: UUID max_count: int = Field(default=5, ge=1, le=50) since_taken_at: Optional[int] = None # epoch seconds for cursor-like behavior class ScrapedPost(BaseModel): ig_post_id: str media_type: str # "image", "video", or "carousel" caption: Optional[str] thumbnail_url: Optional[str] remote_urls: List[str] # remote URLs to be uploaded later taken_at: int # epoch seconds code: Optional[str] = None