from datetime import datetime

from pydantic import BaseModel


class Clip(BaseModel):
    id: str
    camera_id: int
    filename: str | None = None
    s3_path: str
    timestamp: datetime
    uploaded_at: datetime | None = None
    detected_object: str
    duration_seconds: float | None = None
    size_bytes: int | None = None
    thumbnail_path: str | None = None


class ClipSearchResponse(BaseModel):
    items: list[Clip]
    page: int
    limit: int
    total: int


class PlaybackResponse(BaseModel):
    url: str
    expires_in: int


class ThumbnailResponse(BaseModel):
    url: str
