mintly-lib 2.14.0-preview → 2.16.0-preview
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/clients/dashboard-client.d.ts +13 -0
- package/build/clients/dashboard-client.d.ts.map +1 -0
- package/build/clients/dashboard-client.js +21 -0
- package/build/clients/dashboard-client.js.map +1 -0
- package/build/clients/index.d.ts +1 -0
- package/build/clients/index.d.ts.map +1 -1
- package/build/clients/index.js +3 -1
- package/build/clients/index.js.map +1 -1
- package/build/core/client/master-client.d.ts +2 -1
- package/build/core/client/master-client.d.ts.map +1 -1
- package/build/core/client/master-client.js +1 -0
- package/build/core/client/master-client.js.map +1 -1
- package/build/core/data/reports/expenses-response.d.ts +59 -0
- package/build/core/data/reports/expenses-response.d.ts.map +1 -1
- package/build/core/data/reports/index.d.ts +1 -0
- package/build/core/data/reports/index.d.ts.map +1 -1
- package/build/core/data/reports/index.js +1 -0
- package/build/core/data/reports/index.js.map +1 -1
- package/build/core/data/reports/overview-response.d.ts +140 -0
- package/build/core/data/reports/overview-response.d.ts.map +1 -0
- package/build/core/data/reports/overview-response.js +9 -0
- package/build/core/data/reports/overview-response.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ResponseDto } from '../core';
|
|
2
|
+
import type { Headers } from '../core/data/request/headers';
|
|
3
|
+
import type { OverviewQuery, OverviewReport } from '../core/data/reports/overview-response';
|
|
4
|
+
/**
|
|
5
|
+
* Visão Geral (fatia 8) — rota própria em /dashboard. Só GET; compõe o
|
|
6
|
+
* HttpBaseClient pela conexão, como o ReportClient.
|
|
7
|
+
*/
|
|
8
|
+
export declare class DashboardClient {
|
|
9
|
+
private readonly http;
|
|
10
|
+
/** Cards, score de saúde, "O que fazer primeiro", Receita × Despesa e cascata do lucro. */
|
|
11
|
+
overview(query: OverviewQuery, headers: Headers): Promise<ResponseDto<OverviewReport>>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=dashboard-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-client.d.ts","sourceRoot":"","sources":["../../src/clients/dashboard-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAe,MAAM,SAAS,CAAA;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAA;AAE3F;;;GAGG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkD;IAEvE,2FAA2F;IACrF,QAAQ,CAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;CAI9F"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DashboardClient = void 0;
|
|
4
|
+
const core_1 = require("../core");
|
|
5
|
+
const http_base_client_1 = require("../core/client/http-base-client");
|
|
6
|
+
/**
|
|
7
|
+
* Visão Geral (fatia 8) — rota própria em /dashboard. Só GET; compõe o
|
|
8
|
+
* HttpBaseClient pela conexão, como o ReportClient.
|
|
9
|
+
*/
|
|
10
|
+
class DashboardClient {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.http = new http_base_client_1.HttpBaseClient('dashboard');
|
|
13
|
+
}
|
|
14
|
+
/** Cards, score de saúde, "O que fazer primeiro", Receita × Despesa e cascata do lucro. */
|
|
15
|
+
async overview(query, headers) {
|
|
16
|
+
const response = await this.http.connection.get('/overview', (0, core_1.withHeaders)(headers, { params: query }));
|
|
17
|
+
return response.data;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.DashboardClient = DashboardClient;
|
|
21
|
+
//# sourceMappingURL=dashboard-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-client.js","sourceRoot":"","sources":["../../src/clients/dashboard-client.ts"],"names":[],"mappings":";;;AAAA,kCAAkD;AAClD,sEAAgE;AAIhE;;;GAGG;AACH,MAAa,eAAe;IAA5B;QACmB,SAAI,GAAG,IAAI,iCAAc,CAAiB,WAAW,CAAC,CAAA;IAOzE,CAAC;IALC,2FAA2F;IAC3F,KAAK,CAAC,QAAQ,CAAE,KAAoB,EAAE,OAAgB;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAA8B,WAAW,EAAE,IAAA,kBAAW,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;QAClI,OAAO,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC;CACF;AARD,0CAQC"}
|
package/build/clients/index.d.ts
CHANGED
|
@@ -5,4 +5,5 @@ export { FinancialAccountClient } from './financial-account-client';
|
|
|
5
5
|
export { FinancialCategoryClient } from './financial-category-client';
|
|
6
6
|
export { FinancialMovementClient } from './financial-movement-client';
|
|
7
7
|
export { ReportClient } from './report-client';
|
|
8
|
+
export { DashboardClient } from './dashboard-client';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA"}
|
package/build/clients/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ReportClient = exports.FinancialMovementClient = exports.FinancialCategoryClient = exports.FinancialAccountClient = exports.RestaurantClient = exports.PersonClient = exports.AuthClient = void 0;
|
|
3
|
+
exports.DashboardClient = exports.ReportClient = exports.FinancialMovementClient = exports.FinancialCategoryClient = exports.FinancialAccountClient = exports.RestaurantClient = exports.PersonClient = exports.AuthClient = void 0;
|
|
4
4
|
var auth_client_1 = require("./auth-client");
|
|
5
5
|
Object.defineProperty(exports, "AuthClient", { enumerable: true, get: function () { return auth_client_1.AuthClient; } });
|
|
6
6
|
var person_client_1 = require("./person-client");
|
|
@@ -15,4 +15,6 @@ var financial_movement_client_1 = require("./financial-movement-client");
|
|
|
15
15
|
Object.defineProperty(exports, "FinancialMovementClient", { enumerable: true, get: function () { return financial_movement_client_1.FinancialMovementClient; } });
|
|
16
16
|
var report_client_1 = require("./report-client");
|
|
17
17
|
Object.defineProperty(exports, "ReportClient", { enumerable: true, get: function () { return report_client_1.ReportClient; } });
|
|
18
|
+
var dashboard_client_1 = require("./dashboard-client");
|
|
19
|
+
Object.defineProperty(exports, "DashboardClient", { enumerable: true, get: function () { return dashboard_client_1.DashboardClient; } });
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAAjC,yGAAA,UAAU,OAAA;AACnB,iDAA8C;AAArC,6GAAA,YAAY,OAAA;AACrB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA;AACzB,uEAAmE;AAA1D,kIAAA,sBAAsB,OAAA;AAC/B,yEAAqE;AAA5D,oIAAA,uBAAuB,OAAA;AAChC,yEAAqE;AAA5D,oIAAA,uBAAuB,OAAA;AAChC,iDAA8C;AAArC,6GAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/clients/index.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAAjC,yGAAA,UAAU,OAAA;AACnB,iDAA8C;AAArC,6GAAA,YAAY,OAAA;AACrB,yDAAsD;AAA7C,qHAAA,gBAAgB,OAAA;AACzB,uEAAmE;AAA1D,kIAAA,sBAAsB,OAAA;AAC/B,yEAAqE;AAA5D,oIAAA,uBAAuB,OAAA;AAChC,yEAAqE;AAA5D,oIAAA,uBAAuB,OAAA;AAChC,iDAA8C;AAArC,6GAAA,YAAY,OAAA;AACrB,uDAAoD;AAA3C,mHAAA,eAAe,OAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthClient, PersonClient, RestaurantClient, FinancialAccountClient, FinancialCategoryClient, FinancialMovementClient, ReportClient } from '../../clients';
|
|
1
|
+
import { AuthClient, PersonClient, RestaurantClient, FinancialAccountClient, FinancialCategoryClient, FinancialMovementClient, ReportClient, DashboardClient } from '../../clients';
|
|
2
2
|
export declare class MasterClient {
|
|
3
3
|
authClient: AuthClient;
|
|
4
4
|
personClient: PersonClient;
|
|
@@ -7,6 +7,7 @@ export declare class MasterClient {
|
|
|
7
7
|
financialCategoryClient: FinancialCategoryClient;
|
|
8
8
|
financialMovementClient: FinancialMovementClient;
|
|
9
9
|
reportClient: ReportClient;
|
|
10
|
+
dashboardClient: DashboardClient;
|
|
10
11
|
constructor();
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=master-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-client.d.ts","sourceRoot":"","sources":["../../../src/core/client/master-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,
|
|
1
|
+
{"version":3,"file":"master-client.d.ts","sourceRoot":"","sources":["../../../src/core/client/master-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,YAAY,EACZ,eAAe,EAChB,MAAM,eAAe,CAAA;AAEtB,qBAAa,YAAY;IACvB,UAAU,EAAE,UAAU,CAAA;IACtB,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,uBAAuB,EAAE,uBAAuB,CAAA;IAChD,YAAY,EAAE,YAAY,CAAA;IAC1B,eAAe,EAAE,eAAe,CAAA;;CAYjC"}
|
|
@@ -11,6 +11,7 @@ class MasterClient {
|
|
|
11
11
|
this.financialCategoryClient = new clients_1.FinancialCategoryClient();
|
|
12
12
|
this.financialMovementClient = new clients_1.FinancialMovementClient();
|
|
13
13
|
this.reportClient = new clients_1.ReportClient();
|
|
14
|
+
this.dashboardClient = new clients_1.DashboardClient();
|
|
14
15
|
}
|
|
15
16
|
}
|
|
16
17
|
exports.MasterClient = MasterClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"master-client.js","sourceRoot":"","sources":["../../../src/core/client/master-client.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"master-client.js","sourceRoot":"","sources":["../../../src/core/client/master-client.ts"],"names":[],"mappings":";;;AAAA,2CASsB;AAEtB,MAAa,YAAY;IAUvB;QACE,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAU,EAAE,CAAA;QAClC,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAA;QACtC,IAAI,CAAC,gBAAgB,GAAG,IAAI,0BAAgB,EAAE,CAAA;QAC9C,IAAI,CAAC,sBAAsB,GAAG,IAAI,gCAAsB,EAAE,CAAA;QAC1D,IAAI,CAAC,uBAAuB,GAAG,IAAI,iCAAuB,EAAE,CAAA;QAC5D,IAAI,CAAC,uBAAuB,GAAG,IAAI,iCAAuB,EAAE,CAAA;QAC5D,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAY,EAAE,CAAA;QACtC,IAAI,CAAC,eAAe,GAAG,IAAI,yBAAe,EAAE,CAAA;IAC9C,CAAC;CACF;AApBD,oCAoBC"}
|
|
@@ -11,6 +11,19 @@ export interface ExpensesQuery {
|
|
|
11
11
|
channel?: MovementChannel.DineIn | MovementChannel.Delivery;
|
|
12
12
|
}
|
|
13
13
|
export type ExpenseItemKind = 'category' | 'platformFee';
|
|
14
|
+
/** Subitem de uma categoria (fatia 7): uma subcategoria, ou "Sem subitem" (`key: 'none'`). */
|
|
15
|
+
export interface ExpenseSubitem {
|
|
16
|
+
key: string;
|
|
17
|
+
subcategoryId: string | null;
|
|
18
|
+
/** Nome atual da subcategoria (mesmo inativa); "Sem subitem". */
|
|
19
|
+
name: string;
|
|
20
|
+
amount: number;
|
|
21
|
+
previous: number;
|
|
22
|
+
average3: number | null;
|
|
23
|
+
deltaPrevious: number | null;
|
|
24
|
+
deltaAverage3: number | null;
|
|
25
|
+
anomaly: boolean;
|
|
26
|
+
}
|
|
14
27
|
/** Linha de "Para onde está indo seu dinheiro": categoria ou taxa de uma conta de plataforma. */
|
|
15
28
|
export interface ExpenseItem {
|
|
16
29
|
/** categoryId, ou `platformFee:<accountId>`. */
|
|
@@ -27,6 +40,17 @@ export interface ExpenseItem {
|
|
|
27
40
|
deltaPrevious: number | null;
|
|
28
41
|
deltaAverage3: number | null;
|
|
29
42
|
pctOfRevenue: number | null;
|
|
43
|
+
/** [] quando a categoria não tem lançamento com subcategoria na janela; taxa → []. */
|
|
44
|
+
subitems: ExpenseSubitem[];
|
|
45
|
+
/** Selo "alerta": a categoria inteira ou algum subitem dela é atípico no mês. */
|
|
46
|
+
hasAnomaly: boolean;
|
|
47
|
+
/** 6 meses, do mais antigo ao mês de referência (gráfico "Por categoria"). */
|
|
48
|
+
history: {
|
|
49
|
+
month: string;
|
|
50
|
+
amount: number;
|
|
51
|
+
}[];
|
|
52
|
+
/** Projeção do mês atual; null em mês fechado. */
|
|
53
|
+
projected: number | null;
|
|
30
54
|
}
|
|
31
55
|
export interface ExpensesTotal {
|
|
32
56
|
current: number;
|
|
@@ -41,8 +65,38 @@ export interface ExpensesPlatformFee {
|
|
|
41
65
|
deltaPrevious: number | null;
|
|
42
66
|
/** Σ receita bruta de canal efetivo delivery no mês. */
|
|
43
67
|
deliveryRevenue: number;
|
|
68
|
+
/** Taxa / Σ receita bruta das contas de plataforma (a taxa e a venda que a gerou no mesmo denominador). */
|
|
44
69
|
pctOfDelivery: number | null;
|
|
45
70
|
}
|
|
71
|
+
/** Gasto atípico do mês ("Fique de olho"). Regra em `ExpensesReport.anomalyRule`. */
|
|
72
|
+
export interface ExpenseAnomaly {
|
|
73
|
+
/** `ExpenseItem.key` da categoria. */
|
|
74
|
+
itemKey: string;
|
|
75
|
+
categoryId: string | null;
|
|
76
|
+
categoryName: string;
|
|
77
|
+
subcategoryId: string | null;
|
|
78
|
+
/** `ExpenseSubitem.key`; null = a categoria inteira foi avaliada (sem subitens). */
|
|
79
|
+
subitemKey: string | null;
|
|
80
|
+
name: string;
|
|
81
|
+
amount: number;
|
|
82
|
+
average3: number;
|
|
83
|
+
excess: number;
|
|
84
|
+
pctAbove: number;
|
|
85
|
+
}
|
|
86
|
+
/** Projeção linear do mês atual: total até hoje × daysInMonth / elapsedDays. */
|
|
87
|
+
export interface ExpensesProjection {
|
|
88
|
+
total: number;
|
|
89
|
+
/** Receita bruta projetada pela mesma regra (fatia 8 — Visão Geral). */
|
|
90
|
+
revenue: number;
|
|
91
|
+
elapsedDays: number;
|
|
92
|
+
daysInMonth: number;
|
|
93
|
+
}
|
|
94
|
+
/** Critério de anomalia (N4 — palpite, ainda não validado pelo negócio). */
|
|
95
|
+
export interface ExpensesAnomalyRule {
|
|
96
|
+
minPctAbove: number;
|
|
97
|
+
minExcess: number;
|
|
98
|
+
minHistoryMonths: number;
|
|
99
|
+
}
|
|
46
100
|
export interface ExpensesReport {
|
|
47
101
|
referenceMonth: string;
|
|
48
102
|
previousMonth: string;
|
|
@@ -82,5 +136,10 @@ export interface ExpensesReport {
|
|
|
82
136
|
month: string;
|
|
83
137
|
total: number;
|
|
84
138
|
}[];
|
|
139
|
+
/** Maior excedente primeiro. Só o mês de referência. */
|
|
140
|
+
anomalies: ExpenseAnomaly[];
|
|
141
|
+
/** Só quando o mês de referência é o mês atual. */
|
|
142
|
+
projection: ExpensesProjection | null;
|
|
143
|
+
anomalyRule: ExpensesAnomalyRule;
|
|
85
144
|
}
|
|
86
145
|
//# sourceMappingURL=expenses-response.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expenses-response.d.ts","sourceRoot":"","sources":["../../../../src/core/data/reports/expenses-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,wCAAwC,CAAA;AACxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAE7E;;;;GAIG;AAEH,wEAAwE;AACxE,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAA;CAC5D;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,aAAa,CAAA;AAExD,iGAAiG;AACjG,MAAM,WAAW,WAAW;IAC1B,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,eAAe,CAAA;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,gBAAgB,CAAA;IAC1B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"expenses-response.d.ts","sourceRoot":"","sources":["../../../../src/core/data/reports/expenses-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/data/reports/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/data/reports/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA"}
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./cash-flow-response"), exports);
|
|
18
18
|
__exportStar(require("./result-response"), exports);
|
|
19
19
|
__exportStar(require("./expenses-response"), exports);
|
|
20
|
+
__exportStar(require("./overview-response"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/data/reports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,oDAAiC;AACjC,sDAAmC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/data/reports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,oDAAiC;AACjC,sDAAmC;AACnC,sDAAmC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contrato de GET /dashboard/overview (fatia 8). Composição dos relatórios do
|
|
3
|
+
* mês (DRE, Custos) e de hoje (Fluxo de Caixa). Frações como no resto
|
|
4
|
+
* (0.36 = 36%); `deltaPoints` em pontos percentuais (2.8 = +2,8 p.p.). Spec:
|
|
5
|
+
* MintlyApi/specs/modulos-novos/20261013/visao-geral.md.
|
|
6
|
+
*/
|
|
7
|
+
/** `month` em AAAA-MM (padrão: mês corrente). Os blocos de caixa são sempre de hoje. */
|
|
8
|
+
export interface OverviewQuery {
|
|
9
|
+
month?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface OverviewCards {
|
|
12
|
+
netProfit: {
|
|
13
|
+
amount: number;
|
|
14
|
+
delta: number | null;
|
|
15
|
+
history: {
|
|
16
|
+
month: string;
|
|
17
|
+
amount: number;
|
|
18
|
+
}[];
|
|
19
|
+
};
|
|
20
|
+
revenue: {
|
|
21
|
+
amount: number;
|
|
22
|
+
delta: number | null;
|
|
23
|
+
history: {
|
|
24
|
+
month: string;
|
|
25
|
+
amount: number;
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
28
|
+
cashToday: {
|
|
29
|
+
amount: number;
|
|
30
|
+
realized: {
|
|
31
|
+
date: string;
|
|
32
|
+
balance: number;
|
|
33
|
+
}[];
|
|
34
|
+
};
|
|
35
|
+
/** `runwayDays`: fôlego — caixa de hoje ÷ despesa média diária (dias inteiros). */
|
|
36
|
+
projection: {
|
|
37
|
+
horizon: number;
|
|
38
|
+
balance: number;
|
|
39
|
+
lowest: {
|
|
40
|
+
date: string;
|
|
41
|
+
balance: number;
|
|
42
|
+
};
|
|
43
|
+
runwayDays: number | null;
|
|
44
|
+
};
|
|
45
|
+
cmv: {
|
|
46
|
+
pct: number | null;
|
|
47
|
+
previousPct: number | null;
|
|
48
|
+
deltaPoints: number | null;
|
|
49
|
+
target: {
|
|
50
|
+
min: number;
|
|
51
|
+
max: number;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
primeCost: {
|
|
55
|
+
pct: number | null;
|
|
56
|
+
previousPct: number | null;
|
|
57
|
+
deltaPoints: number | null;
|
|
58
|
+
targetMax: number;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export type HealthLabel = 'risk' | 'attention' | 'healthy' | 'noData';
|
|
62
|
+
export type HealthPillarKey = 'netMargin' | 'runway' | 'primeCost' | 'revenueTrend';
|
|
63
|
+
/** Pilar do score (N5 — palpite). `score` null = sem dado (fora da média). */
|
|
64
|
+
export interface HealthPillar {
|
|
65
|
+
key: HealthPillarKey;
|
|
66
|
+
weight: number;
|
|
67
|
+
score: number | null;
|
|
68
|
+
value: number | null;
|
|
69
|
+
}
|
|
70
|
+
export interface OverviewHealth {
|
|
71
|
+
score: number | null;
|
|
72
|
+
label: HealthLabel;
|
|
73
|
+
/**
|
|
74
|
+
* Mês dos pilares do mês. Mês atual: o último mês fechado (+ fôlego de hoje).
|
|
75
|
+
* Mês passado: o próprio mês, sem o fôlego (pilar `runway` sem dado).
|
|
76
|
+
*/
|
|
77
|
+
basisMonth: string;
|
|
78
|
+
pillars: HealthPillar[];
|
|
79
|
+
bands: {
|
|
80
|
+
risk: number;
|
|
81
|
+
attention: number;
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export type OverviewInsight = {
|
|
85
|
+
kind: 'cashTight';
|
|
86
|
+
severity: 'warning';
|
|
87
|
+
date: string;
|
|
88
|
+
balance: number;
|
|
89
|
+
} | {
|
|
90
|
+
kind: 'cmvAboveTarget';
|
|
91
|
+
severity: 'warning';
|
|
92
|
+
pct: number;
|
|
93
|
+
targetMax: number;
|
|
94
|
+
impact: number;
|
|
95
|
+
} | {
|
|
96
|
+
kind: 'primeCostAboveTarget';
|
|
97
|
+
severity: 'warning';
|
|
98
|
+
pct: number;
|
|
99
|
+
targetMax: number;
|
|
100
|
+
} | {
|
|
101
|
+
kind: 'expenseAnomaly';
|
|
102
|
+
severity: 'warning';
|
|
103
|
+
name: string;
|
|
104
|
+
categoryName: string;
|
|
105
|
+
excess: number;
|
|
106
|
+
pctAbove: number;
|
|
107
|
+
} | {
|
|
108
|
+
kind: 'breakEvenReached';
|
|
109
|
+
severity: 'positive';
|
|
110
|
+
day: number;
|
|
111
|
+
} | {
|
|
112
|
+
kind: 'taxRegimeNotConfigured';
|
|
113
|
+
severity: 'info';
|
|
114
|
+
};
|
|
115
|
+
export interface RevenueVsExpensePoint {
|
|
116
|
+
month: string;
|
|
117
|
+
revenue: number;
|
|
118
|
+
expense: number;
|
|
119
|
+
/** true = projeção linear do mês atual (o ponto real do mesmo mês vem antes). */
|
|
120
|
+
projected: boolean;
|
|
121
|
+
}
|
|
122
|
+
export interface ProfitWaterfall {
|
|
123
|
+
grossRevenue: number;
|
|
124
|
+
taxes: number;
|
|
125
|
+
cmv: number;
|
|
126
|
+
operatingExpenses: number;
|
|
127
|
+
netProfit: number;
|
|
128
|
+
}
|
|
129
|
+
export interface OverviewReport {
|
|
130
|
+
referenceMonth: string;
|
|
131
|
+
/** AAAA-MM-DD em SP — referência dos blocos de caixa. */
|
|
132
|
+
today: string;
|
|
133
|
+
cards: OverviewCards;
|
|
134
|
+
health: OverviewHealth;
|
|
135
|
+
/** No máximo 4: warning → positive → info. */
|
|
136
|
+
insights: OverviewInsight[];
|
|
137
|
+
revenueVsExpense: RevenueVsExpensePoint[];
|
|
138
|
+
profitWaterfall: ProfitWaterfall;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=overview-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview-response.d.ts","sourceRoot":"","sources":["../../../../src/core/data/reports/overview-response.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Contrato de GET /dashboard/overview (fatia 8). Composição dos relatórios do
|
|
4
|
+
* mês (DRE, Custos) e de hoje (Fluxo de Caixa). Frações como no resto
|
|
5
|
+
* (0.36 = 36%); `deltaPoints` em pontos percentuais (2.8 = +2,8 p.p.). Spec:
|
|
6
|
+
* MintlyApi/specs/modulos-novos/20261013/visao-geral.md.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
//# sourceMappingURL=overview-response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overview-response.js","sourceRoot":"","sources":["../../../../src/core/data/reports/overview-response.ts"],"names":[],"mappings":";AAAA;;;;;GAKG"}
|