e1368c7ef7
What-If Scenario Planner (G5): - New /projects/[id]/scenario page with side-by-side baseline vs scenario - simulate mutation: pure cost/hours/headcount/utilization computation - apply mutation: creates real PROPOSED assignments from scenario - Impact cards: cost delta, hours delta, headcount, skill coverage % - Per-resource utilization impact table with over-allocation warnings - "What-If" button added to project detail page Custom Report Builder (G7): - New /reports/builder page with full config panel - Entity selector (resource/project/assignment), column picker, filter builder - Dynamic Prisma query with eq/neq/gt/lt/contains/in operators - Sortable results table with pagination (50/page) - CSV export via exportReport mutation - Sidebar nav link under Analytics Collaboration Layer (G8): - Comment model in Prisma (entityType/entityId, replies, @mentions, resolved) - comment router: list, count, create, resolve, delete - @mention parsing with notification creation + SSE delivery - CommentInput with @mention autocomplete (arrow nav, Enter/Tab confirm) - CommentThread with avatar, timestamp, reply, resolve, delete - Integrated as "Comments" tab in estimate workspace with count badge Dashboard Widgets: - BudgetForecastWidget: progress bars per project, burn rate, exhaustion date - SkillGapWidget: supply vs demand per skill, shortage/surplus indicators - ProjectHealthWidget: 3-dimension health circles + composite score - 3 new application use-cases + dashboard router queries - All registered in widget-registry with lazy imports Co-Authored-By: claude-flow <ruv@ruv.net>
39 lines
796 B
TypeScript
39 lines
796 B
TypeScript
export {
|
|
getDashboardOverview,
|
|
} from "./get-overview.js";
|
|
|
|
export {
|
|
getDashboardPeakTimes,
|
|
type GetDashboardPeakTimesInput,
|
|
} from "./get-peak-times.js";
|
|
|
|
export {
|
|
getDashboardTopValueResources,
|
|
type GetDashboardTopValueResourcesInput,
|
|
} from "./get-top-value-resources.js";
|
|
|
|
export {
|
|
getDashboardDemand,
|
|
type GetDashboardDemandInput,
|
|
} from "./get-demand.js";
|
|
|
|
export {
|
|
getDashboardChargeabilityOverview,
|
|
type GetDashboardChargeabilityOverviewInput,
|
|
} from "./get-chargeability-overview.js";
|
|
|
|
export {
|
|
getDashboardBudgetForecast,
|
|
type BudgetForecastRow,
|
|
} from "./get-budget-forecast.js";
|
|
|
|
export {
|
|
getDashboardSkillGaps,
|
|
type SkillGapRow,
|
|
} from "./get-skill-gaps.js";
|
|
|
|
export {
|
|
getDashboardProjectHealth,
|
|
type ProjectHealthRow,
|
|
} from "./get-project-health.js";
|