17
17
*/
18
18
19
19
import 'package:json_annotation/json_annotation.dart' ;
20
+ import 'package:powersync/sqlite3.dart' as sqlite;
20
21
import 'package:wger/helpers/json.dart' ;
21
22
import 'package:wger/models/nutrition/ingredient.dart' ;
22
23
import 'package:wger/models/nutrition/ingredient_weight_unit.dart' ;
23
24
import 'package:wger/models/nutrition/meal_item.dart' ;
24
25
import 'package:wger/models/nutrition/nutritional_values.dart' ;
26
+ import 'package:wger/models/schema.dart' ;
27
+ import 'package:wger/powersync.dart' ;
25
28
26
29
part 'log.g.dart' ;
27
30
@@ -75,6 +78,19 @@ class Log {
75
78
amount = mealItem.amount;
76
79
}
77
80
81
+ factory Log .fromRow (sqlite.Row row) {
82
+ return Log (
83
+ id: row['id' ],
84
+ mealId: row['meal_id' ],
85
+ ingredientId: row['ingredient_id' ],
86
+ weightUnitId: row['weight_unit_id' ],
87
+ amount: row['amount' ],
88
+ planId: row['plan_id' ],
89
+ datetime: row['datetime' ],
90
+ comment: row['comment' ],
91
+ );
92
+ }
93
+
78
94
// Boilerplate
79
95
factory Log .fromJson (Map <String , dynamic > json) => _$LogFromJson (json);
80
96
@@ -89,4 +105,31 @@ class Log {
89
105
90
106
return ingredient.nutritionalValues / (100 / weight);
91
107
}
108
+ /*
109
+ Future<void> delete() async {
110
+ await db.execute('DELETE FROM $logItemsTable WHERE id = ?', [id]);
111
+ }
112
+
113
+ static Future<void> addPhoto(String photoId, String id) async {
114
+ await db.execute('UPDATE $logItemsTable SET photo_id = ? WHERE id = ?', [photoId, id]);
115
+ }
116
+ }
117
+
118
+ static Stream<List<TodoList>> watchLists() {
119
+ // This query is automatically re-run when data in "lists" or "todos" is modified.
120
+ return db.watch('SELECT * FROM lists ORDER BY created_at, id').map((results) {
121
+ return results.map(TodoList.fromRow).toList(growable: false);
122
+ });
123
+ }
124
+
125
+ static Future<TodoList> create(String name) async {
126
+ final results = await db.execute('''
127
+ INSERT INTO
128
+ lists(id, created_at, name, owner_id)
129
+ VALUES(uuid(), datetime(), ?, ?)
130
+ RETURNING *
131
+ ''', [name, await getUserId()]);
132
+ return TodoList.fromRow(results.first);
133
+ }
134
+ */
92
135
}
0 commit comments