import 'dart:async'; import 'package:sqflite/sqflite.dart'; import 'package:fooder/models/product.dart'; class ProductStorage { Database db; ProductStorage({required this.db}); static Future createTable(Database db, int version) async { await db.execute(''' CREATE TABLE product( id INTEGER PRIMARY KEY, name TEXT NOT NULL, barcode TEXT, calories NOT NULL, protein REAL NOT NULL, carb REAL NOT NULL, fat REAL NOT NULL, fiber REAL NOT NULL ) '''); } Future> list() async { var result = await db.query('product'); return result.map((e) => Product.fromJson(e)).toList(); } Future get(int id) async { var result = await db.query('product', where: 'id = ?', whereArgs: [id]); if (result.isEmpty) { return null; } return Product.fromJson(result.first); } Future insert(Product product) async { await db.insert('product', product.toMap(), conflictAlgorithm: ConflictAlgorithm.replace); } Future bulkInsert(List products) async { var batch = db.batch(); for (var product in products) { batch.insert('product', product.toMap(), conflictAlgorithm: ConflictAlgorithm.replace); } await batch.commit(noResult: true); } }