From c5261a0b224897bc730773f090ff2bd0ffad4ec0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 16 May 2026 10:43:27 +0300 Subject: [PATCH] docs(plan): Sprint 3B dashboard & deep-links implementation plan Co-Authored-By: Claude Opus 4.7 (1M context) --- ...2026-05-16-sprint3b-dashboard-deeplinks.md | 823 ++++++++++++++++++ 1 file changed, 823 insertions(+) create mode 100644 docs/superpowers/plans/2026-05-16-sprint3b-dashboard-deeplinks.md 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 ` +``` + +Шаблон `