Remote sync of webdav
This commit is contained in:
parent
f01186df79
commit
483fbeafb6
44 changed files with 4842 additions and 975 deletions
|
|
@ -1,6 +1,10 @@
|
|||
class FuelEntry {
|
||||
final String id;
|
||||
|
||||
/// References [Vehicle.id] (the hidden, immutable identifier) — not the
|
||||
/// VIN, which is user-editable and so unsuitable as a foreign key.
|
||||
final String vehicleId;
|
||||
|
||||
final DateTime date;
|
||||
final double gallons;
|
||||
final double pricePerGallon;
|
||||
|
|
@ -26,16 +30,21 @@ class FuelEntry {
|
|||
this.deletedAt,
|
||||
});
|
||||
|
||||
/// True once the receipt photo has been uploaded to Drive and the local
|
||||
/// copy removed. Viewing it then requires downloading it on demand.
|
||||
bool get isReceiptUploadedToDrive =>
|
||||
receiptImagePath == null && receiptDriveFileId != null;
|
||||
/// True once the receipt photo has been uploaded to Drive, regardless of
|
||||
/// whether a local copy is also being kept (see the "keep photos on this
|
||||
/// phone" setting). Viewing it locally is preferred when a local copy
|
||||
/// exists; otherwise it requires downloading from Drive on demand.
|
||||
bool get isReceiptUploadedToDrive => receiptDriveFileId != null;
|
||||
|
||||
/// True while a receipt photo exists only locally and still needs to be
|
||||
/// uploaded next sync. A row in this state is never pushed to Drive as-is
|
||||
/// (a local file path is meaningless on another device) — sync uploads
|
||||
/// the image first, which clears this.
|
||||
bool get hasPendingLocalReceipt => receiptImagePath != null;
|
||||
/// True while a receipt photo still needs to be uploaded to Drive: a
|
||||
/// local file exists but hasn't made it there yet. Once
|
||||
/// [receiptDriveFileId] is set this is false — even if a local copy is
|
||||
/// also being kept — since that field alone is what marks "no longer
|
||||
/// needs uploading", independent of local retention. A row in this state
|
||||
/// is never pushed to Drive as data (a local file path is meaningless on
|
||||
/// another device) — sync uploads the image first, which sets
|
||||
/// [receiptDriveFileId] and clears this.
|
||||
bool get needsReceiptUpload => receiptImagePath != null && receiptDriveFileId == null;
|
||||
|
||||
FuelEntry copyWith({
|
||||
String? receiptImagePath,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue