from __future__ import annotations

import uuid
from datetime import datetime

from pydantic import BaseModel, ConfigDict


class MediaItemResponse(BaseModel):
    model_config = ConfigDict(from_attributes=True)

    id: uuid.UUID
    source_url: str
    source_platform: str | None
    page_title: str | None
    mime_type: str | None
    duration_seconds: int | None
    file_size_bytes: int | None
    status: str
    created_at: datetime | None


class LinkResponse(BaseModel):
    model_config = ConfigDict(from_attributes=True)

    id: uuid.UUID
    url: str
    page_title: str | None
    og_description: str | None
    status: str
    created_at: datetime | None


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