Decouple blog models and BlogService from shared layer
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m20s
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m20s
Move Post/Author/Tag/PostAuthor/PostTag/PostUser models from
shared/models/ghost_content.py to blog/models/content.py so blog-domain
models no longer live in the shared layer. Replace the shared
SqlBlogService + BlogService protocol with a blog-local singleton
(blog_service), and switch entry_associations.py from direct DB access
to HTTP fetch_data("blog", "post-by-id") to respect the inter-service
boundary.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,6 @@ from typing import Protocol, runtime_checkable
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from .dtos import (
|
||||
PostDTO,
|
||||
CalendarDTO,
|
||||
CalendarEntryDTO,
|
||||
TicketDTO,
|
||||
@@ -29,17 +28,6 @@ from .dtos import (
|
||||
)
|
||||
|
||||
|
||||
@runtime_checkable
|
||||
class BlogService(Protocol):
|
||||
async def get_post_by_slug(self, session: AsyncSession, slug: str) -> PostDTO | None: ...
|
||||
async def get_post_by_id(self, session: AsyncSession, id: int) -> PostDTO | None: ...
|
||||
async def get_posts_by_ids(self, session: AsyncSession, ids: list[int]) -> list[PostDTO]: ...
|
||||
|
||||
async def search_posts(
|
||||
self, session: AsyncSession, query: str, page: int = 1, per_page: int = 10,
|
||||
) -> tuple[list[PostDTO], int]: ...
|
||||
|
||||
|
||||
@runtime_checkable
|
||||
class CalendarService(Protocol):
|
||||
async def calendars_for_container(
|
||||
|
||||
Reference in New Issue
Block a user