Files
docs/standards/mcp/templates/app/domain/vets/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 vet aggregate via the hexa container.
"""
from hexa import build
from domain.vets.models import Vet
from domain.vets.ports.db import VetDocument
from infra.adapters.service import CrudsServiceAdaptor
class VetCrudsService(CrudsServiceAdaptor[Vet, VetDocument]):
"""Vet CRUD service resolving :class:`VetDocument` from a repo.
Notes:
Instances are created by :func:`get_vet_service`. The ``model`` and
``schema`` class attributes bind the domain model and its document type.
"""
model = Vet
schema = VetDocument
def get_vet_service(repo) -> VetCrudsService:
"""Build a vet CRUD service wired to ``repo``.
Args:
repo (Any): Integer-id vet repository from :func:`create_vet_repo`.
Returns:
VetCrudsService: Ready-to-use vet CRUD service.
"""
return build(VetCrudsService, instances={"repo": repo})