# Generated by smithplates HTTP codegen. Do not edit.
from datetime import datetime  # noqa: F401
from typing import Annotated, Protocol  # noqa: F401

from pydantic import Field  # noqa: F401

from generated.petstore.api.create_pet_input import CreatePetInput
from generated.petstore.api.create_pet_output import CreatePetOutput
from generated.petstore.api.get_pet_output import GetPetOutput
from generated.petstore.api.pet_location_redirect import PetLocationRedirect
from generated.petstore.api.pet_not_found import PetNotFound
from generated.petstore.api.update_pet_body import UpdatePetBody
from generated.petstore.api.update_pet_output import UpdatePetOutput
from generated.petstore.api.validation_error import ValidationError


class PetsApiServiceProtocol(Protocol):
    async def create_pet(
        self,
        create_pet_input: CreatePetInput,
    ) -> CreatePetOutput | ValidationError:
        """HTTP-facing petstore contract. Generated FastAPI routes call protocol implementations
        in `src/server` that delegate to generated `@sqlService` repositories."""

    async def delete_pet(
        self,
        pet_id: str,
    ) -> PetNotFound | None: ...
    async def get_pet(
        self,
        pet_id: str,
    ) -> GetPetOutput | PetNotFound: ...
    async def resolve_pet_location(
        self,
        pet_id: str,
    ) -> PetLocationRedirect | PetNotFound: ...
    async def update_pet(
        self,
        pet_id: str,
        body: UpdatePetBody,
    ) -> UpdatePetOutput | PetNotFound | ValidationError: ...
