diff --git a/docs/superpowers/plans/2026-05-16-sprint3b-dashboard-deeplinks.md b/docs/superpowers/plans/2026-05-16-sprint3b-dashboard-deeplinks.md new file mode 100644 index 00000000..870d7d5f --- /dev/null +++ b/docs/superpowers/plans/2026-05-16-sprint3b-dashboard-deeplinks.md @@ -0,0 +1,823 @@ +# Sprint 3B — Dashboard & Deep-links Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Закрыть аудит-эпики C1+J3 (живой дашборд через новый backend-эндпоинт) и C8+F3 (deep-link `/deals?openId=` из напоминаний и колокольчика). + +**Architecture:** J3 — новый `DashboardController::summary` с агрегацией по `deals` + `tenants` (RLS-обёртка `SET LOCAL app.current_tenant_id`, паттерн `DealController`). C1 — `DashboardView` фетчит endpoint и пробрасывает данные в уже-prop-driven компоненты (`DashboardKpiRow`/`DashboardBalance`/`ActivityChart`/`FunnelChart`), при ошибке — fallback на mock. C8/F3 — три точки навигации переводятся на `query: { openId }`, а `DealsView` читает `route.query.openId` и открывает drawer найденной сделки. + +**Tech Stack:** PHP 8.3 + Laravel 13, PostgreSQL 16 (партиционированная `deals`), Pest 4; Vue 3 ` +``` + +Шаблон `