@tmlmobilidade/interfaces 20260605.1458.26 → 20260605.1715.34

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.
@@ -48,11 +48,6 @@ export declare function ridesPipelineOperationalStatus({ filter }?: {
48
48
  operational_status?: OperationalStatus[];
49
49
  };
50
50
  }): AggregationPipeline<Ride>;
51
- export declare function ridesPipelineticketingStatus({ filter }?: {
52
- filter?: {
53
- ticketing_status?: TicketingStatus[];
54
- };
55
- }): AggregationPipeline<Ride>;
56
51
  /**
57
52
  * Creates MongoDB aggregation pipeline stages to calculate and categorize seen statuses.
58
53
  *
@@ -78,7 +73,7 @@ export declare function ridesPipelineSeenStatus({ filter }?: {
78
73
  seen_status?: SeenStatus[];
79
74
  };
80
75
  }): AggregationPipeline<Ride>;
81
- export declare function ridePipelineTicketingStatus({ filter }?: {
76
+ export declare function ridesPipelineTicketingStatus({ filter }?: {
82
77
  filter?: {
83
78
  ticketing_status?: TicketingStatus[];
84
79
  };
@@ -195,22 +195,6 @@ export function ridesPipelineOperationalStatus({ filter } = {}) {
195
195
  }
196
196
  return pipeline;
197
197
  }
198
- export function ridesPipelineticketingStatus({ filter } = {}) {
199
- const pipeline = [];
200
- if (filter?.ticketing_status?.length)
201
- return pipeline;
202
- const includesHasTicketing = filter.ticketing_status.includes('has_ticketing');
203
- const includesNoTicketing = filter.ticketing_status.includes('no_ticketing');
204
- if (includesHasTicketing && !includesNoTicketing)
205
- return pipeline;
206
- if (includesHasTicketing) {
207
- pipeline.push({ $match: { apex_validations_qty: { $gte: 1 } } });
208
- }
209
- if (includesNoTicketing) {
210
- pipeline.push({ $match: { apex_validations_qty: { $eq: 0 } } });
211
- }
212
- return pipeline;
213
- }
214
198
  /**
215
199
  * Creates MongoDB aggregation pipeline stages to calculate and categorize seen statuses.
216
200
  *
@@ -278,36 +262,21 @@ export function ridesPipelineSeenStatus({ filter } = {}) {
278
262
  }
279
263
  return pipeline;
280
264
  }
281
- export function ridePipelineTicketingStatus({ filter } = {}) {
282
- if (!filter?.ticketing_status?.length) {
283
- return [];
265
+ export function ridesPipelineTicketingStatus({ filter } = {}) {
266
+ const pipeline = [];
267
+ if (filter?.ticketing_status?.length)
268
+ return pipeline;
269
+ const includesHasTicketing = filter.ticketing_status.includes('has_ticketing');
270
+ const includesNoTicketing = filter.ticketing_status.includes('no_ticketing');
271
+ // If both are present, match all documents (no filter needed)
272
+ if (includesHasTicketing && !includesNoTicketing)
273
+ return pipeline;
274
+ if (includesHasTicketing) {
275
+ pipeline.push({ $match: { apex_validations_qty: { $gte: 1 } } });
276
+ }
277
+ if (includesNoTicketing) {
278
+ pipeline.push({ $match: { apex_validations_qty: { $eq: 0 } } });
284
279
  }
285
- const pipeline = [
286
- {
287
- $addFields: {
288
- ticketing_status: {
289
- $cond: {
290
- else: 'no_ticketing',
291
- if: {
292
- $and: [
293
- { $ifNull: ['$apex_validations_qty', false] },
294
- { $gt: ['$apex_validations_qty', 0] },
295
- ],
296
- },
297
- then: 'has_ticketing',
298
- },
299
- },
300
- },
301
- },
302
- {
303
- $match: {
304
- ticketing_status: { $in: filter.ticketing_status },
305
- },
306
- },
307
- {
308
- $project: { ticketing_status: 0 },
309
- },
310
- ];
311
280
  return pipeline;
312
281
  }
313
282
  /**
@@ -496,6 +465,6 @@ export function ridesBatchAggregationPipeline({ ...filter }) {
496
465
  pipeline.push(...ridesPipelineDelayStatus({ filter: { end_delay_status: filter.delay_statuses, start_delay_status: filter.delay_statuses } }));
497
466
  pipeline.push(...ridesPipelineOperationalStatus({ filter: { operational_status: filter.operational_statuses } }));
498
467
  pipeline.push(...ridesPipelineSeenStatus({ filter: { seen_status: filter.seen_statuses } }));
499
- pipeline.push(...ridePipelineTicketingStatus({ filter: { ticketing_status: filter.ticketing_status } }));
468
+ pipeline.push(...ridesPipelineTicketingStatus({ filter: { ticketing_status: filter.ticketing_status } }));
500
469
  return pipeline;
501
470
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tmlmobilidade/interfaces",
3
- "version": "20260605.1458.26",
3
+ "version": "20260605.1715.34",
4
4
  "author": {
5
5
  "email": "iso@tmlmobilidade.pt",
6
6
  "name": "TML-ISO"