Add deeper reports: stage conversion, period compare, and deal drill-down.

This commit is contained in:
2026-09-27 10:39:09 +03:30
parent d133c8ca34
commit 6a9e864b07
5 changed files with 889 additions and 60 deletions
+21 -22
View File
@@ -1,7 +1,8 @@
import { Controller, Get, Query, UseGuards } from '@nestjs/common';
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
import { CurrentUser } from '../auth/current-user.decorator';
import { ReportsQueryDto } from './dto';
import type { Actor } from '../common/record-scope';
import { ReportsDrilldownQueryDto, ReportsQueryDto } from './dto';
import { ReportsService } from './reports.service';
@Controller('reports')
@@ -10,30 +11,28 @@ export class ReportsController {
constructor(private readonly reportsService: ReportsService) {}
@Get('dashboard')
dashboard(
@CurrentUser()
user: { userId: string; organizationId: string; role: string },
@Query() query: ReportsQueryDto,
dashboard(@CurrentUser() user: Actor, @Query() query: ReportsQueryDto) {
return this.reportsService.dashboard(user, {
from: query.from,
to: query.to,
});
}
@Get('drilldown')
drilldown(
@CurrentUser() user: Actor,
@Query() query: ReportsDrilldownQueryDto,
) {
return this.reportsService.dashboard(
{
userId: user.userId,
organizationId: user.organizationId,
role: user.role,
},
{ from: query.from, to: query.to },
);
return this.reportsService.drilldown(user, {
kind: query.kind,
id: query.id,
from: query.from,
to: query.to,
});
}
@Get('home')
home(
@CurrentUser()
user: { userId: string; organizationId: string; role: string },
) {
return this.reportsService.home({
userId: user.userId,
organizationId: user.organizationId,
role: user.role,
});
home(@CurrentUser() user: Actor) {
return this.reportsService.home(user);
}
}