Files
docs/standards/mcp/templates/app/domain/pets/ports/service.py
Vishesh 'ironeagle' Bangotra 0cb35d10a6 Phase 7: serve the vet sample from the template tools and docs
- build.py: _TEMPLATE_COMPONENTS rewritten around the vet sample (53 kinds —
  per-resource slices, jobs, worked appointment_reminder family, tests);
  seed tokens dropped from the manifest ('sample: vet' instead)
- registry.py: get_app_component(kind) no longer renames item/example seeds;
  prompts and tool docs updated to 'copy a slice and adapt'
- templates/README.md, 01_build_recipe, 40_ui_admin, wiki/03 updated off the
  old seed scheme; repo inventory/config now exclude vet (docs move under
  standards; react/vet itself is deleted in a later phase)
- regenerated MCP bundle, vendored templates, and site output
2026-10-20 14:58:17 +05:30

34 lines
918 B
Python

"""# Summary
CRUD service wiring for the pet aggregate via the hexa container.
"""
from hexa import build
from domain.pets.models import Pet
from domain.pets.ports.db import PetDocument
from infra.adapters.service import CrudsServiceAdaptor
class PetCrudsService(CrudsServiceAdaptor[Pet, PetDocument]):
"""Pet CRUD service resolving :class:`PetDocument` from a repo.
Notes:
Instances are created by :func:`get_pet_service`. The ``model`` and
``schema`` class attributes bind the domain model and its document type.
"""
model = Pet
schema = PetDocument
def get_pet_service(repo) -> PetCrudsService:
"""Build a pet CRUD service wired to ``repo``.
Args:
repo (Any): Integer-id pet repository from :func:`create_pet_repo`.
Returns:
PetCrudsService: Ready-to-use pet CRUD service.
"""
return build(PetCrudsService, instances={"repo": repo})