Add the experience service with sites through analytics/AI hooks, migrations through 0011, and phase docs/manifests marking the track complete. Co-authored-by: Cursor <cursoragent@cursor.com>
64 lines
1.8 KiB
Python
64 lines
1.8 KiB
Python
"""Template query handlers — Phase 11.4."""
|
|
from __future__ import annotations
|
|
|
|
from uuid import UUID
|
|
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.services.templates import ExperienceTemplateService
|
|
from app.specifications.templates import (
|
|
InstantiationListSpec,
|
|
TemplateListSpec,
|
|
TemplateVersionListSpec,
|
|
)
|
|
|
|
|
|
class TemplateQueries:
|
|
def __init__(self, session: AsyncSession) -> None:
|
|
self.service = ExperienceTemplateService(session)
|
|
|
|
async def get_template(self, tenant_id: UUID, template_id: UUID):
|
|
return await self.service.get_template(tenant_id, template_id)
|
|
|
|
async def list_templates(
|
|
self,
|
|
tenant_id: UUID,
|
|
*,
|
|
offset: int,
|
|
limit: int,
|
|
spec: TemplateListSpec | None,
|
|
):
|
|
return await self.service.list_templates(
|
|
tenant_id, offset=offset, limit=limit, spec=spec
|
|
)
|
|
|
|
async def get_version(self, tenant_id: UUID, version_id: UUID):
|
|
return await self.service.get_version(tenant_id, version_id)
|
|
|
|
async def list_versions(
|
|
self,
|
|
tenant_id: UUID,
|
|
*,
|
|
offset: int,
|
|
limit: int,
|
|
spec: TemplateVersionListSpec | None,
|
|
):
|
|
return await self.service.list_versions(
|
|
tenant_id, offset=offset, limit=limit, spec=spec
|
|
)
|
|
|
|
async def get_instantiation(self, tenant_id: UUID, instantiation_id: UUID):
|
|
return await self.service.get_instantiation(tenant_id, instantiation_id)
|
|
|
|
async def list_instantiations(
|
|
self,
|
|
tenant_id: UUID,
|
|
*,
|
|
offset: int,
|
|
limit: int,
|
|
spec: InstantiationListSpec | None,
|
|
):
|
|
return await self.service.list_instantiations(
|
|
tenant_id, offset=offset, limit=limit, spec=spec
|
|
)
|