"""Git repository request/response schemas.""" import uuid from datetime import datetime from pydantic import BaseModel, ConfigDict class GitRepositoryCreate(BaseModel): name: str remote_url: str | None = None force_original_url: bool = False ssh_key_id: str | None = None class URLParseRequest(BaseModel): url: str class URLParseResponse(BaseModel): original_url: str base_url: str | None is_valid_clone_url: bool needs_parsing: bool host: str | None message: str error_code: str | None class GitRepositoryResponse(BaseModel): model_config = ConfigDict(from_attributes=True) id: uuid.UUID name: str path: str project_id: uuid.UUID | None owner_id: uuid.UUID is_mirror: bool remote_url: str | None last_push: datetime | None ssh_key_id: uuid.UUID | None created_at: datetime updated_at: datetime class UpdateSSHKeyRequest(BaseModel): ssh_key_id: str | None = None