@silexpert/core 1.3.94-7 → 1.3.94-9

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.
Files changed (74) hide show
  1. package/dist/cjs/api/resources/BankDedup.d.ts +2 -2
  2. package/dist/cjs/api/resources/BankDedup.d.ts.map +1 -1
  3. package/dist/cjs/api/resources/BankDedup.js +1 -1
  4. package/dist/cjs/api/resources/BankDedup.js.map +1 -1
  5. package/dist/cjs/api/resources/Society.d.ts +2 -1
  6. package/dist/cjs/api/resources/Society.d.ts.map +1 -1
  7. package/dist/cjs/api/resources/Society.js +3 -0
  8. package/dist/cjs/api/resources/Society.js.map +1 -1
  9. package/dist/cjs/api/resources/User.js +1 -1
  10. package/dist/cjs/api/resources/User.js.map +1 -1
  11. package/dist/cjs/types/Enum/BalanceSheet.d.ts +2 -2
  12. package/dist/cjs/types/Enum/BalanceSheet.js +2 -2
  13. package/dist/cjs/types/Enum/BalanceSheet.js.map +1 -1
  14. package/dist/cjs/types/Interface/{models/IBankDedup.d.ts → api/bankDedup/BankDedup.d.ts} +28 -38
  15. package/dist/cjs/types/Interface/api/bankDedup/BankDedup.d.ts.map +1 -0
  16. package/dist/cjs/types/Interface/api/bankDedup/BankDedup.js +301 -0
  17. package/dist/cjs/types/Interface/api/bankDedup/BankDedup.js.map +1 -0
  18. package/dist/cjs/types/Interface/api/calendarEvent/updateCalendarEvent.d.ts +1 -0
  19. package/dist/cjs/types/Interface/api/calendarEvent/updateCalendarEvent.d.ts.map +1 -1
  20. package/dist/cjs/types/Interface/api/calendarEvent/updateCalendarEvent.js +4 -0
  21. package/dist/cjs/types/Interface/api/calendarEvent/updateCalendarEvent.js.map +1 -1
  22. package/dist/cjs/types/Interface/api/society/QueryToArchived.d.ts +5 -0
  23. package/dist/cjs/types/Interface/api/society/QueryToArchived.d.ts.map +1 -0
  24. package/dist/cjs/types/Interface/api/society/QueryToArchived.js +25 -0
  25. package/dist/cjs/types/Interface/api/society/QueryToArchived.js.map +1 -0
  26. package/dist/cjs/types/index.d.ts +2 -0
  27. package/dist/cjs/types/index.d.ts.map +1 -1
  28. package/dist/cjs/types/index.js +2 -0
  29. package/dist/cjs/types/index.js.map +1 -1
  30. package/dist/mjs/api/resources/BankDedup.d.ts +2 -2
  31. package/dist/mjs/api/resources/BankDedup.d.ts.map +1 -1
  32. package/dist/mjs/api/resources/BankDedup.js +1 -1
  33. package/dist/mjs/api/resources/BankDedup.js.map +1 -1
  34. package/dist/mjs/api/resources/Society.d.ts +2 -1
  35. package/dist/mjs/api/resources/Society.d.ts.map +1 -1
  36. package/dist/mjs/api/resources/Society.js +3 -0
  37. package/dist/mjs/api/resources/Society.js.map +1 -1
  38. package/dist/mjs/api/resources/User.js +1 -1
  39. package/dist/mjs/api/resources/User.js.map +1 -1
  40. package/dist/mjs/types/Enum/BalanceSheet.d.ts +2 -2
  41. package/dist/mjs/types/Enum/BalanceSheet.js +2 -2
  42. package/dist/mjs/types/Enum/BalanceSheet.js.map +1 -1
  43. package/dist/mjs/types/Interface/{models/IBankDedup.d.ts → api/bankDedup/BankDedup.d.ts} +28 -38
  44. package/dist/mjs/types/Interface/api/bankDedup/BankDedup.d.ts.map +1 -0
  45. package/dist/mjs/types/Interface/api/bankDedup/BankDedup.js +340 -0
  46. package/dist/mjs/types/Interface/api/bankDedup/BankDedup.js.map +1 -0
  47. package/dist/mjs/types/Interface/api/calendarEvent/updateCalendarEvent.d.ts +1 -0
  48. package/dist/mjs/types/Interface/api/calendarEvent/updateCalendarEvent.d.ts.map +1 -1
  49. package/dist/mjs/types/Interface/api/calendarEvent/updateCalendarEvent.js +5 -0
  50. package/dist/mjs/types/Interface/api/calendarEvent/updateCalendarEvent.js.map +1 -1
  51. package/dist/mjs/types/Interface/api/society/QueryToArchived.d.ts +5 -0
  52. package/dist/mjs/types/Interface/api/society/QueryToArchived.d.ts.map +1 -0
  53. package/dist/mjs/types/Interface/api/society/QueryToArchived.js +22 -0
  54. package/dist/mjs/types/Interface/api/society/QueryToArchived.js.map +1 -0
  55. package/dist/mjs/types/index.d.ts +2 -0
  56. package/dist/mjs/types/index.d.ts.map +1 -1
  57. package/dist/mjs/types/index.js +2 -0
  58. package/dist/mjs/types/index.js.map +1 -1
  59. package/package.json +1 -1
  60. package/ts/api/resources/BankDedup.ts +3 -3
  61. package/ts/api/resources/Society.ts +5 -0
  62. package/ts/api/resources/User.ts +1 -1
  63. package/ts/types/Enum/BalanceSheet.ts +2 -2
  64. package/ts/types/Interface/api/bankDedup/BankDedup.ts +264 -0
  65. package/ts/types/Interface/api/calendarEvent/updateCalendarEvent.ts +3 -0
  66. package/ts/types/Interface/api/society/QueryToArchived.ts +10 -0
  67. package/ts/types/index.ts +2 -0
  68. package/dist/cjs/types/Interface/models/IBankDedup.d.ts.map +0 -1
  69. package/dist/cjs/types/Interface/models/IBankDedup.js +0 -3
  70. package/dist/cjs/types/Interface/models/IBankDedup.js.map +0 -1
  71. package/dist/mjs/types/Interface/models/IBankDedup.d.ts.map +0 -1
  72. package/dist/mjs/types/Interface/models/IBankDedup.js +0 -2
  73. package/dist/mjs/types/Interface/models/IBankDedup.js.map +0 -1
  74. package/ts/types/Interface/models/IBankDedup.ts +0 -98
@@ -29,6 +29,7 @@ import {
29
29
  ReadSocietyUnpaidStats,
30
30
  DataCustomersCsv,
31
31
  ReadCurrentPrestations,
32
+ QueryToArchivedSociety,
32
33
  } from '../../types';
33
34
  import { CancelToken } from 'axios';
34
35
 
@@ -136,6 +137,10 @@ export class Society extends Resource {
136
137
  return this.axios.$get('/society/archived', { params: query });
137
138
  }
138
139
 
140
+ getToArchived(query: QueryToArchivedSociety, signal?: AbortSignal): Promise<BasePaginate<ISociety>> {
141
+ return this.axios.$get('/society/to-archived', { params: query, ...(signal ? { signal } : {}) });
142
+ }
143
+
139
144
  getUnpaids(query: QueryUnpaidSociety, signal?: AbortSignal): Promise<ISociety[]> {
140
145
  return this.axios.$get('/society/unpaids', {
141
146
  ...(signal ? { signal } : {}),
@@ -30,7 +30,7 @@ export class User extends Resource {
30
30
  return this.axios.$put('user/confirm', params);
31
31
  }
32
32
  resendConfirmationEmailLink(params: QueryResendConfirmationLink): Promise<boolean> {
33
- return this.axios.$put(`user/${params.id}/resendConfirmationEmailLink`);
33
+ return this.axios.$put(`user/${params.id}/send-confirmation-mail`);
34
34
  }
35
35
  create(data: CreateUser): Promise<IUser> {
36
36
  return this.axios.$post('user/create', data);
@@ -164,7 +164,7 @@ export const BalanceSheetDetails = [
164
164
  text: 'Standby',
165
165
  color: 'grey lighten-1',
166
166
  textColor: 'grey--text',
167
- forRoles: [['admin'], ['super_admin'], ['controle_interne']],
167
+ forRoles: [['admin'], ['super_admin'], ['controle_interne'], ['satisfaction']],
168
168
  },
169
169
  {
170
170
  text: 'Impayé',
@@ -229,7 +229,7 @@ export const BalanceSheetDetails = [
229
229
  value: BalanceSheetState.FIX_IN_PROGRESS,
230
230
  color: 'blue darken-4',
231
231
  textColor: 'blue--text',
232
- forRoles: [['front_office'], ['expert']],
232
+ forRoles: [['front_office'], ['expert'], ['satisfaction']],
233
233
  },
234
234
  {
235
235
  text: "Accepté SIE en l'état",
@@ -0,0 +1,264 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import {
3
+ IsString,
4
+ IsNumber,
5
+ IsArray,
6
+ ValidateNested,
7
+ IsBoolean,
8
+ IsIn,
9
+ IsOptional,
10
+ Min,
11
+ Max,
12
+ IsInstance,
13
+ } from 'class-validator';
14
+ import { Transform, Type } from 'class-transformer';
15
+
16
+ export class BankDedupRequest {
17
+ @ApiProperty()
18
+ @IsString()
19
+ csv: string; // CSV en string (avec header: label,dateValue,credit,debit)
20
+
21
+ @ApiProperty()
22
+ @IsNumber()
23
+ initial: number; // solde initial
24
+
25
+ @ApiProperty()
26
+ @IsNumber()
27
+ target: number; // solde cible
28
+ }
29
+
30
+ export class BankDedupFileUploadBody {
31
+ @ApiProperty()
32
+ @IsNumber()
33
+ initial: number; // solde initial
34
+
35
+ @ApiProperty()
36
+ @IsNumber()
37
+ target: number; // solde cible
38
+ }
39
+
40
+ export class BankTx {
41
+ @ApiProperty()
42
+ @IsString()
43
+ id: string; // id interne généré
44
+
45
+ @ApiProperty()
46
+ @IsString()
47
+ label: string;
48
+
49
+ @ApiProperty()
50
+ @IsString()
51
+ dateValue: string; // YYYY-MM-DD
52
+
53
+ @ApiProperty()
54
+ @IsNumber()
55
+ credit: number;
56
+
57
+ @ApiProperty()
58
+ @IsNumber()
59
+ debit: number;
60
+
61
+ @ApiProperty()
62
+ @IsIn([1, -1])
63
+ sign: 1 | -1; // 1 = crédit net, -1 = débit net
64
+
65
+ @ApiProperty()
66
+ @IsNumber()
67
+ @Min(0)
68
+ amount: number; // valeur absolue du mouvement (en positif)
69
+
70
+ @ApiProperty()
71
+ @IsNumber()
72
+ cents: number; // montant en centimes pour calculs exacts
73
+ }
74
+
75
+ export class DuplicateGroup {
76
+ @ApiProperty()
77
+ @IsString()
78
+ id: string;
79
+
80
+ @ApiProperty({ type: [BankTx] })
81
+ @IsArray()
82
+ @ValidateNested({ each: true })
83
+ @Type(() => BankTx)
84
+ transactions: BankTx[];
85
+
86
+ @ApiProperty()
87
+ @IsNumber()
88
+ amount: number; // montant commun
89
+
90
+ @ApiProperty()
91
+ @IsNumber()
92
+ cents: number; // montant en centimes
93
+
94
+ @ApiProperty()
95
+ @IsIn([1, -1])
96
+ sign: 1 | -1; // signe commun
97
+
98
+ @ApiProperty()
99
+ @IsNumber()
100
+ @Min(0)
101
+ @Max(1)
102
+ confidence: number; // score de confiance [0 - 1]
103
+
104
+ @ApiProperty()
105
+ @IsIn(['exact', 'fuzzy_high', 'fuzzy_medium', 'fuzzy_low'])
106
+ method: 'exact' | 'fuzzy_high' | 'fuzzy_medium' | 'fuzzy_low'; // méthode de détection
107
+ }
108
+
109
+ export class BankDedupResult {
110
+ @ApiProperty()
111
+ @IsBoolean()
112
+ success: true;
113
+
114
+ @ApiProperty()
115
+ @IsNumber()
116
+ initial: number;
117
+
118
+ @ApiProperty()
119
+ @IsNumber()
120
+ target: number;
121
+
122
+ @ApiProperty()
123
+ @IsNumber()
124
+ finalRaw: number;
125
+
126
+ @ApiProperty()
127
+ @IsNumber()
128
+ finalAfterDedup: number;
129
+
130
+ @ApiProperty()
131
+ @IsNumber()
132
+ diffBefore: number; // target - finalRaw
133
+
134
+ @ApiProperty()
135
+ @IsNumber()
136
+ diffAfter: number; // target - finalAfterDedup (DOIT être exactement 0, aucune tolérance)
137
+
138
+ @ApiProperty()
139
+ @IsArray()
140
+ @ValidateNested({ each: true })
141
+ @Type(() => BankDedupGroup)
142
+ removedGroups: BankDedupGroup[];
143
+
144
+ @ApiProperty()
145
+ @IsNumber()
146
+ removedCount: number;
147
+
148
+ @ApiProperty()
149
+ @IsNumber()
150
+ keptCount: number;
151
+
152
+ @ApiProperty()
153
+ @IsString()
154
+ csvDeduped: string;
155
+
156
+ @ApiProperty()
157
+ @IsArray()
158
+ @ValidateNested({ each: true })
159
+ @Type(() => BankDedupGroup)
160
+ allGroups: BankDedupGroup[];
161
+
162
+ @ApiProperty()
163
+ debug: {
164
+ totalGroups: number;
165
+ selectedGroups: number;
166
+ iterations: number;
167
+ strategiesUsed: string[];
168
+ };
169
+ }
170
+
171
+ export class BankDedupGroup {
172
+ @ApiProperty()
173
+ @IsString()
174
+ id: string;
175
+
176
+ @ApiProperty()
177
+ @IsBoolean()
178
+ isSelected: boolean;
179
+
180
+ @ApiProperty()
181
+ @IsOptional()
182
+ @IsNumber()
183
+ @Min(0)
184
+ @Max(1)
185
+ confidence?: number;
186
+
187
+ @ApiProperty()
188
+ @IsOptional()
189
+ @IsString()
190
+ method?: string;
191
+
192
+ @ApiProperty()
193
+ @IsOptional()
194
+ @IsNumber()
195
+ amount?: number;
196
+
197
+ @ApiProperty()
198
+ @IsOptional()
199
+ @IsNumber()
200
+ transactionCount?: number;
201
+
202
+ @ApiProperty()
203
+ @IsOptional()
204
+ @IsArray()
205
+ transactions?: {
206
+ id: string;
207
+ label: string;
208
+ dateValue: string;
209
+ isKept: boolean;
210
+ isCredit: boolean;
211
+ }[];
212
+ }
213
+
214
+ export class BankDedupImpossible {
215
+ @ApiProperty()
216
+ @IsBoolean()
217
+ success: false;
218
+
219
+ @ApiProperty()
220
+ @IsIn(['NO_EXACT_COMBINATION', 'CSV_PARSE_ERROR', 'INVALID_INPUT', 'INSUFFICIENT_DUPLICATES'])
221
+ reason: 'NO_EXACT_COMBINATION' | 'CSV_PARSE_ERROR' | 'INVALID_INPUT' | 'INSUFFICIENT_DUPLICATES';
222
+
223
+ @ApiProperty()
224
+ @IsString()
225
+ message: string;
226
+
227
+ @ApiProperty()
228
+ @IsOptional()
229
+ @IsNumber()
230
+ initial?: number;
231
+
232
+ @ApiProperty()
233
+ @IsOptional()
234
+ @IsNumber()
235
+ target?: number;
236
+
237
+ @ApiProperty()
238
+ @IsOptional()
239
+ @IsNumber()
240
+ finalRaw?: number;
241
+
242
+ @ApiProperty()
243
+ @IsOptional()
244
+ @IsNumber()
245
+ diffBefore?: number;
246
+
247
+ @ApiProperty()
248
+ @IsOptional()
249
+ bestAttempt?: {
250
+ finalAfterDedup: number;
251
+ diffAfter: number;
252
+ removedCount: number;
253
+ };
254
+
255
+ @ApiProperty()
256
+ @IsOptional()
257
+ stats?: {
258
+ totalTx?: number;
259
+ totalGroups?: number;
260
+ strategiesTried?: string[];
261
+ };
262
+ }
263
+
264
+ export type BankDedupResponse = BankDedupResult | BankDedupImpossible;
@@ -37,6 +37,9 @@ export class UpdateCalendarEvent {
37
37
  @ApiPropertyOptional()
38
38
  idUser?: number;
39
39
 
40
+ @ApiPropertyOptional()
41
+ idUserToUpdate?: number;
42
+
40
43
  @ApiPropertyOptional()
41
44
  typeComptable?: number;
42
45
 
@@ -0,0 +1,10 @@
1
+ import { IsOptional, IsString } from 'class-validator';
2
+ import { ApiPropertyOptional } from '../../../../utils';
3
+ import { RequiredQueryPaginate } from '../BasePaginate';
4
+
5
+ export class QueryToArchivedSociety extends RequiredQueryPaginate {
6
+ @ApiPropertyOptional()
7
+ @IsOptional()
8
+ @IsString()
9
+ search?: string;
10
+ }
package/ts/types/index.ts CHANGED
@@ -735,6 +735,7 @@ export * from './Interface/api/webmail/ExportEmails';
735
735
  export * from './Interface/api/webmail/PostAttachmentEmailFromLambdaParams';
736
736
  export * from './Interface/api/webmail/GetPaginatedWhereObjectParams';
737
737
  export * from './Interface/api/bankAccount/Delete';
738
+ export * from './Interface/api/bankDedup/BankDedup';
738
739
  export * from './Interface/api/log/QueryLogPagination';
739
740
  export * from './Interface/api/employee/QueryEmployeeSearch';
740
741
  export * from './Interface/api/employee/QueryCreateEmployee';
@@ -1057,6 +1058,7 @@ export * from './Interface/api/accountsSectors/Query';
1057
1058
  export * from './Interface/api/visualizedInformation/Query';
1058
1059
  export * from './Interface/api/visualizedInformation/Update';
1059
1060
  export * from './Interface/api/society/QueryArchived';
1061
+ export * from './Interface/api/society/QueryToArchived';
1060
1062
  export * from './Interface/api/society/QueryUnpaid';
1061
1063
  export * from './Interface/api/vatControl/CreateVatControl';
1062
1064
  export * from './Interface/api/vatControl/QueryVatControl';
@@ -1 +0,0 @@
1
- {"version":3,"file":"IBankDedup.d.ts","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IBankDedup.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=IBankDedup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IBankDedup.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IBankDedup.ts"],"names":[],"mappings":"","sourcesContent":["export interface IBankDedupRequest {\n csv: string; // CSV en string (avec header: label,dateValue,credit,debit)\n initial: number; // solde initial\n target: number; // solde cible\n}\n\nexport interface BankTx {\n id: string; // id interne généré\n label: string;\n dateValue: string; // YYYY-MM-DD\n credit: number; // >= 0\n debit: number; // >= 0\n sign: 1 | -1; // 1 = crédit net, -1 = débit net\n amount: number; // valeur absolue du mouvement (en positif)\n cents: number; // amount en centimes pour calculs exacts\n}\n\nexport interface DuplicateGroup {\n id: string;\n transactions: BankTx[];\n amount: number; // montant commun\n cents: number; // montant en centimes\n sign: 1 | -1; // signe commun\n confidence: number; // score de confiance [0..1]\n method: 'exact' | 'fuzzy_high' | 'fuzzy_medium' | 'fuzzy_low'; // méthode de détection\n}\n\nexport interface IBankDedupResult {\n success: true;\n initial: number;\n target: number;\n finalRaw: number;\n finalAfterDedup: number;\n diffBefore: number; // target - finalRaw\n diffAfter: number; // target - finalAfterDedup (DOIT être exactement 0, aucune tolérance)\n removedGroups: {\n id: string;\n removedTransactions: {\n id: string;\n label: string;\n amount: number;\n dateValue: string;\n }[];\n keptTransaction: {\n id: string;\n label: string;\n amount: number;\n dateValue: string;\n };\n confidence: number;\n method: string;\n }[];\n removedCount: number;\n keptCount: number;\n csvDeduped: string;\n allGroups: {\n id: string;\n confidence: number;\n method: string;\n amount: number;\n transactionCount: number;\n isSelected: boolean;\n transactions: {\n id: string;\n label: string;\n dateValue: string;\n isKept: boolean;\n }[];\n }[];\n debug: {\n totalGroups: number;\n selectedGroups: number;\n iterations: number;\n strategiesUsed: string[];\n };\n}\n\nexport interface IBankDedupImpossible {\n success: false;\n reason: 'NO_EXACT_COMBINATION' | 'CSV_PARSE_ERROR' | 'INVALID_INPUT' | 'INSUFFICIENT_DUPLICATES';\n message: string;\n initial?: number;\n target?: number;\n finalRaw?: number;\n diffBefore?: number;\n bestAttempt?: {\n finalAfterDedup: number;\n diffAfter: number; // Sera != 0 puisque pas de solution exacte\n removedCount: number;\n };\n stats?: {\n totalTx?: number;\n totalGroups?: number;\n strategiesTried?: string[];\n };\n}\n\nexport type IBankDedupResponse = IBankDedupResult | IBankDedupImpossible;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"IBankDedup.d.ts","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IBankDedup.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=IBankDedup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IBankDedup.js","sourceRoot":"","sources":["../../../../../ts/types/Interface/models/IBankDedup.ts"],"names":[],"mappings":"","sourcesContent":["export interface IBankDedupRequest {\n csv: string; // CSV en string (avec header: label,dateValue,credit,debit)\n initial: number; // solde initial\n target: number; // solde cible\n}\n\nexport interface BankTx {\n id: string; // id interne généré\n label: string;\n dateValue: string; // YYYY-MM-DD\n credit: number; // >= 0\n debit: number; // >= 0\n sign: 1 | -1; // 1 = crédit net, -1 = débit net\n amount: number; // valeur absolue du mouvement (en positif)\n cents: number; // amount en centimes pour calculs exacts\n}\n\nexport interface DuplicateGroup {\n id: string;\n transactions: BankTx[];\n amount: number; // montant commun\n cents: number; // montant en centimes\n sign: 1 | -1; // signe commun\n confidence: number; // score de confiance [0..1]\n method: 'exact' | 'fuzzy_high' | 'fuzzy_medium' | 'fuzzy_low'; // méthode de détection\n}\n\nexport interface IBankDedupResult {\n success: true;\n initial: number;\n target: number;\n finalRaw: number;\n finalAfterDedup: number;\n diffBefore: number; // target - finalRaw\n diffAfter: number; // target - finalAfterDedup (DOIT être exactement 0, aucune tolérance)\n removedGroups: {\n id: string;\n removedTransactions: {\n id: string;\n label: string;\n amount: number;\n dateValue: string;\n }[];\n keptTransaction: {\n id: string;\n label: string;\n amount: number;\n dateValue: string;\n };\n confidence: number;\n method: string;\n }[];\n removedCount: number;\n keptCount: number;\n csvDeduped: string;\n allGroups: {\n id: string;\n confidence: number;\n method: string;\n amount: number;\n transactionCount: number;\n isSelected: boolean;\n transactions: {\n id: string;\n label: string;\n dateValue: string;\n isKept: boolean;\n }[];\n }[];\n debug: {\n totalGroups: number;\n selectedGroups: number;\n iterations: number;\n strategiesUsed: string[];\n };\n}\n\nexport interface IBankDedupImpossible {\n success: false;\n reason: 'NO_EXACT_COMBINATION' | 'CSV_PARSE_ERROR' | 'INVALID_INPUT' | 'INSUFFICIENT_DUPLICATES';\n message: string;\n initial?: number;\n target?: number;\n finalRaw?: number;\n diffBefore?: number;\n bestAttempt?: {\n finalAfterDedup: number;\n diffAfter: number; // Sera != 0 puisque pas de solution exacte\n removedCount: number;\n };\n stats?: {\n totalTx?: number;\n totalGroups?: number;\n strategiesTried?: string[];\n };\n}\n\nexport type IBankDedupResponse = IBankDedupResult | IBankDedupImpossible;\n"]}
@@ -1,98 +0,0 @@
1
- export interface IBankDedupRequest {
2
- csv: string; // CSV en string (avec header: label,dateValue,credit,debit)
3
- initial: number; // solde initial
4
- target: number; // solde cible
5
- }
6
-
7
- export interface BankTx {
8
- id: string; // id interne généré
9
- label: string;
10
- dateValue: string; // YYYY-MM-DD
11
- credit: number; // >= 0
12
- debit: number; // >= 0
13
- sign: 1 | -1; // 1 = crédit net, -1 = débit net
14
- amount: number; // valeur absolue du mouvement (en positif)
15
- cents: number; // amount en centimes pour calculs exacts
16
- }
17
-
18
- export interface DuplicateGroup {
19
- id: string;
20
- transactions: BankTx[];
21
- amount: number; // montant commun
22
- cents: number; // montant en centimes
23
- sign: 1 | -1; // signe commun
24
- confidence: number; // score de confiance [0..1]
25
- method: 'exact' | 'fuzzy_high' | 'fuzzy_medium' | 'fuzzy_low'; // méthode de détection
26
- }
27
-
28
- export interface IBankDedupResult {
29
- success: true;
30
- initial: number;
31
- target: number;
32
- finalRaw: number;
33
- finalAfterDedup: number;
34
- diffBefore: number; // target - finalRaw
35
- diffAfter: number; // target - finalAfterDedup (DOIT être exactement 0, aucune tolérance)
36
- removedGroups: {
37
- id: string;
38
- removedTransactions: {
39
- id: string;
40
- label: string;
41
- amount: number;
42
- dateValue: string;
43
- }[];
44
- keptTransaction: {
45
- id: string;
46
- label: string;
47
- amount: number;
48
- dateValue: string;
49
- };
50
- confidence: number;
51
- method: string;
52
- }[];
53
- removedCount: number;
54
- keptCount: number;
55
- csvDeduped: string;
56
- allGroups: {
57
- id: string;
58
- confidence: number;
59
- method: string;
60
- amount: number;
61
- transactionCount: number;
62
- isSelected: boolean;
63
- transactions: {
64
- id: string;
65
- label: string;
66
- dateValue: string;
67
- isKept: boolean;
68
- }[];
69
- }[];
70
- debug: {
71
- totalGroups: number;
72
- selectedGroups: number;
73
- iterations: number;
74
- strategiesUsed: string[];
75
- };
76
- }
77
-
78
- export interface IBankDedupImpossible {
79
- success: false;
80
- reason: 'NO_EXACT_COMBINATION' | 'CSV_PARSE_ERROR' | 'INVALID_INPUT' | 'INSUFFICIENT_DUPLICATES';
81
- message: string;
82
- initial?: number;
83
- target?: number;
84
- finalRaw?: number;
85
- diffBefore?: number;
86
- bestAttempt?: {
87
- finalAfterDedup: number;
88
- diffAfter: number; // Sera != 0 puisque pas de solution exacte
89
- removedCount: number;
90
- };
91
- stats?: {
92
- totalTx?: number;
93
- totalGroups?: number;
94
- strategiesTried?: string[];
95
- };
96
- }
97
-
98
- export type IBankDedupResponse = IBankDedupResult | IBankDedupImpossible;