TorbatYar/backend/services/experience/app/queries/localization.py
Mortezakoohjani 203671a7bf feat(experience): ship Experience Platform phases 11.0-11.10
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>
2026-07-27 11:43:10 +03:30

64 lines
1.9 KiB
Python

"""Localization & media-ref query handlers — Phase 11.5."""
from __future__ import annotations
from uuid import UUID
from sqlalchemy.ext.asyncio import AsyncSession
from app.services.localization import ExperienceLocalizationService
from app.specifications.localization import (
LocalizationListSpec,
MediaRefListSpec,
SiteLocaleBindingListSpec,
)
class LocalizationQueries:
def __init__(self, session: AsyncSession) -> None:
self.service = ExperienceLocalizationService(session)
async def get_site_locale_binding(self, tenant_id: UUID, binding_id: UUID):
return await self.service.get_site_locale_binding(tenant_id, binding_id)
async def list_site_locale_bindings(
self,
tenant_id: UUID,
*,
offset: int,
limit: int,
spec: SiteLocaleBindingListSpec | None,
):
return await self.service.list_site_locale_bindings(
tenant_id, offset=offset, limit=limit, spec=spec
)
async def get_localization(self, tenant_id: UUID, localization_id: UUID):
return await self.service.get_localization(tenant_id, localization_id)
async def list_localizations(
self,
tenant_id: UUID,
*,
offset: int,
limit: int,
spec: LocalizationListSpec | None,
):
return await self.service.list_localizations(
tenant_id, offset=offset, limit=limit, spec=spec
)
async def get_media_ref(self, tenant_id: UUID, media_ref_id: UUID):
return await self.service.get_media_ref(tenant_id, media_ref_id)
async def list_media_refs(
self,
tenant_id: UUID,
*,
offset: int,
limit: int,
spec: MediaRefListSpec | None,
):
return await self.service.list_media_refs(
tenant_id, offset=offset, limit=limit, spec=spec
)