feat: add analytics overview endpoint

This commit is contained in:
ivannoskov
2026-01-06 16:55:31 +03:00
parent 52e65dff05
commit 1a5ce621bc
6 changed files with 332 additions and 1 deletions

View File

@@ -10,6 +10,7 @@ from src import domain
from .analytics.get_channel_analytics import get_channel_analytics
from .analytics.get_creatives_analytics import get_creatives_analytics
from .analytics.get_overview_analytics import get_overview_analytics
from .analytics.get_placements_analytics import get_placements_analytics
from .analytics.get_spending_analytics import get_spending_analytics
from .auth.create_telegram_login_token import create_telegram_login_token
@@ -206,6 +207,8 @@ class Database(typing.Protocol):
creative_id: UUID | None = None,
include_archived: bool = False,
allowed_project_ids: set[UUID] | None = None,
date_from: datetime.datetime | None = None,
date_to: datetime.datetime | None = None,
) -> list[domain.Placement]: ...
async def delete_placement(self, placement_id: UUID) -> None: ...
@@ -220,6 +223,14 @@ class Database(typing.Protocol):
async def update_subscription(self, subscription: domain.Subscription) -> None: ...
async def get_subscriptions_for_placements(
self,
placement_ids: list[UUID],
*,
date_from: datetime.datetime | None = None,
date_to: datetime.datetime | None = None,
) -> list[domain.Subscription]: ...
async def get_active_subscriptions_by_subscriber_and_project(
self, subscriber_id: UUID, project_id: UUID
) -> list[domain.Subscription]: ...
@@ -391,6 +402,7 @@ class Usecase:
get_creatives_analytics = get_creatives_analytics
get_channel_analytics = get_channel_analytics
get_spending_analytics = get_spending_analytics
get_overview_analytics = get_overview_analytics
get_workspaces = get_workspaces
create_workspace = create_workspace
update_workspace = update_workspace