Erweiterungen

This commit is contained in:
Sven committed 2026-02-14 08:52:06 +01:00
1 parent ba1f7d5440
commit bb3dc9e856
28 files changed
+1672 -1291

No files matched your search

+26
View File
@@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:objectbox/objectbox.dart';
import 'package:stadtbote/model/job_tour.dart';
import 'package:stadtbote/model/tour_file.dart';
@Entity()
class Job {
@@ -34,6 +35,25 @@ class Job {
toursJson = jsonEncode(value.map((e) => e.toJson()).toList());
}
// Store files as JSON string for ObjectBox
String filesJson = '';
@Transient()
List<TourFile> get files {
if (filesJson.isEmpty) {
return [];
}
final List<dynamic> decoded = jsonDecode(filesJson);
return decoded.map((e) => TourFile.fromJson(e as Map<String, dynamic>)).toList();
}
set files(List<TourFile> value) {
filesJson = jsonEncode(value.map((e) => e.toJson()).toList());
}
// Helper method to check if job has files
bool get hasFiles => files.isNotEmpty;
Job();
factory Job.fromJson(Map<String, dynamic> json) {
@@ -52,6 +72,11 @@ class Job {
job.tours = (json['tours'] as List<dynamic>)
.map((e) => JobTour.fromJson(e as Map<String, dynamic>))
.toList();
if (json['files'] != null) {
job.files = (json['files'] as List<dynamic>)
.map((e) => TourFile.fromJson(e as Map<String, dynamic>))
.toList();
}
return job;
}
@@ -68,6 +93,7 @@ class Job {
'rem': rem,
'delayOrderTime': delayOrderTime,
'tours': tours.map((e) => e.toJson()).toList(),
'files': files.map((e) => e.toJson()).toList(),
};
}
}