from __future__ import annotations

from pydantic import Field

from app.models.common import StrictModel


class RepoStages(StrictModel):
    embedding: str | None = None


class RepoEntry(StrictModel):
    repo_id: str
    clone_url: str | None = None
    last_sync_at: str | None = None
    latest_snapshot_id: str | None = None
    indexing_status: str | None = None
    stages: RepoStages = Field(default_factory=RepoStages)


class ReposResponse(StrictModel):
    repos: list[RepoEntry] = Field(default_factory=list)
