Lazy-import Like model in SqlLikesService

The module-level import of likes.models.like.Like caused ImportError
in non-likes services that register SqlLikesService. Move the import
into a lazy helper called per-method.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 08:51:11 +00:00
parent d6f3250a77
commit 336a4ad9a1

View File

@@ -8,7 +8,10 @@ from __future__ import annotations
from sqlalchemy import select, update, func
from sqlalchemy.ext.asyncio import AsyncSession
from likes.models.like import Like
def _Like():
from likes.models.like import Like
return Like
class SqlLikesService:
@@ -18,6 +21,7 @@ class SqlLikesService:
user_id: int, target_type: str,
target_slug: str | None = None, target_id: int | None = None,
) -> bool:
Like = _Like()
if not user_id or not target_type:
return False
filters = [
@@ -38,6 +42,7 @@ class SqlLikesService:
self, session: AsyncSession, *,
user_id: int, target_type: str,
) -> list[str]:
Like = _Like()
if not user_id or not target_type:
return []
result = await session.execute(
@@ -54,6 +59,7 @@ class SqlLikesService:
self, session: AsyncSession, *,
user_id: int, target_type: str,
) -> list[int]:
Like = _Like()
if not user_id or not target_type:
return []
result = await session.execute(
@@ -72,6 +78,7 @@ class SqlLikesService:
target_slug: str | None = None, target_id: int | None = None,
) -> bool:
"""Toggle a like. Returns True if now liked, False if unliked."""
Like = _Like()
filters = [
Like.user_id == user_id,
Like.target_type == target_type,