Redesign reports dashboard with full API-backed widgets.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-05 17:04:54 +03:30
co-authored by Cursor
parent 55f360c13f
commit 7862b6f374
3 changed files with 1433 additions and 317 deletions
+54 -13
View File
@@ -1301,10 +1301,62 @@ export interface PortalTicketDto {
/* ——— گزارشات و داشبورد ——— */
export interface ReportsKpiDto {
key: string;
label: string;
value: number;
format: "money" | "number";
changePercent: number | null;
changeLabel: string;
}
export interface ReportsSeriesPointDto {
key: string;
label: string;
value: number;
}
export interface ReportsSliceDto {
label: string;
count: number;
percent: number;
amount?: number;
}
export interface ReportsTopProductDto {
name: string;
quantity: number;
amount: number;
}
export interface ReportsTeamRowDto {
userId: string;
fullName: string;
wonAmount: number;
wonCount: number;
activitiesDone: number;
}
export interface ReportsDashboardDto {
from: string;
to: string;
currency: string;
kpis: ReportsKpiDto[];
salesTrend: ReportsSeriesPointDto[];
monthlyComparison: ReportsSeriesPointDto[];
customerGrowth: ReportsSeriesPointDto[];
sources: ReportsSliceDto[];
salesByCategory: ReportsSliceDto[];
topProducts: ReportsTopProductDto[];
customerStatus: ReportsSliceDto[];
activities: {
open: number;
done: number;
overdue: number;
byType: Array<{ type: string; label: string; count: number }>;
};
team: ReportsTeamRowDto[];
insights: string[];
sales: {
openCount: number;
wonCount: number;
@@ -1321,19 +1373,6 @@ export interface ReportsDashboardDto {
count: number;
amount: number;
}>;
activities: {
open: number;
done: number;
overdue: number;
byType: Array<{ type: string; count: number }>;
};
team: Array<{
userId: string;
fullName: string;
wonAmount: number;
wonCount: number;
activitiesDone: number;
}>;
tickets: {
open: number;
resolved: number;
@@ -1343,6 +1382,8 @@ export interface ReportsDashboardDto {
csatCount: number;
};
peopleCreated: number;
invoiceCount: number;
invoiceAmount: number;
}
export interface HomeDashboardKpiDto {