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

from pydantic import BaseModel


class RevisionResponse(BaseModel):
    id: UUID
    project_id: UUID
    revision_number: int
    git_sha: str
    commit_message: Optional[str]
    source: Optional[str]
    created_by: Optional[UUID]
    created_at: datetime

    model_config = {"from_attributes": True}


class RevisionSummary(BaseModel):
    id: UUID
    number: int
    git_sha: str


class TagCreate(BaseModel):
    tag: str


class TagResponse(BaseModel):
    id: UUID
    revision_id: UUID
    tag: str
    created_at: datetime
