"""Previews domain - Pydantic schemas."""
from __future__ import annotations
from datetime import datetime
from typing import Optional
from uuid import UUID

from pydantic import BaseModel


class PreviewCreate(BaseModel):
    revision_id: UUID


class PreviewResponse(BaseModel):
    id: UUID
    project_id: UUID
    revision_id: Optional[UUID]
    status: str
    base_url: Optional[str]
    expires_at: Optional[datetime]
    created_at: datetime
    stopped_at: Optional[datetime]

    model_config = {"from_attributes": True}


class RouteEntry(BaseModel):
    path: str
    label: str
    type: str = "page"


class RoutesManifestResponse(BaseModel):
    routes: list[RouteEntry]
    generated_at: str
    source: str
