Skip to content

Commit 7dbea23

Browse files
committed
fix: API was updated to show ticket type so we can now filter receipts out
1 parent a1ccc0c commit 7dbea23

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

lib/services/shopinbit/shopinbit_service.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,11 @@ class ShopInBitService {
6767
);
6868
return;
6969
}
70-
await Future.wait(resp.value!.map((ref) => _refreshRef(ref, key)));
70+
await Future.wait(
71+
resp.value!
72+
.where((e) => !e.isKnownReceipt)
73+
.map((ref) => _refreshRef(ref, key)),
74+
);
7175
}
7276

7377
/// Refresh a single ticket. The row must already exist; use this for

lib/services/shopinbit/src/models/ticket.dart

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,25 @@ class TicketRef {
4444
final int id;
4545
final String number;
4646

47-
TicketRef({required this.id, required this.number});
47+
/// [kind] is nullable for backwards compat only
48+
final String? kind;
49+
50+
/// True only when [kind] explicitly marks this as a receipt ticket.
51+
/// False does not rule it out, since legacy tickets have a null [kind].
52+
bool get isKnownReceipt => kind == "receipt";
53+
54+
TicketRef({required this.id, required this.number, this.kind});
4855

4956
factory TicketRef.fromJson(Map<String, dynamic> json) {
50-
return TicketRef(id: _toInt(json['id']), number: json['number'] as String);
57+
return TicketRef(
58+
id: _toInt(json['id']),
59+
number: json['number'] as String,
60+
kind: json['ticket_kind'] as String?,
61+
);
5162
}
5263

5364
Map<String, dynamic> toMap() {
54-
return {"id": id, "number": number};
65+
return {"id": id, "number": number, "kind": kind};
5566
}
5667

5768
@override

0 commit comments

Comments
 (0)