from pydantic import BaseModel, HttpUrl
from typing import Optional, Any
from datetime import datetime

# Request schema (if needed)
class PredictionCreate(BaseModel):
    before_image_url: HttpUrl
    after_image_url: HttpUrl
    text_results: Optional[Any] = None
    output_image_url: Optional[HttpUrl] = None
    status: Optional[str] = "pending"

# Response schema
class PredictionResponse(BaseModel):
    id: int
    before_image_url: HttpUrl
    after_image_url: HttpUrl
    text_results: Optional[Any]
    output_image_url: Optional[HttpUrl]
    status: str
    created_at: datetime
    updated_at: datetime

    class Config:
        orm_mode = True  # needed to convert SQLAlchemy objects to Pydantic
