import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; class DatabaseHelper { static final DatabaseHelper instance = DatabaseHelper._init(); static Database? _database; DatabaseHelper._init(); Future get database async { if (_database != null) return _database!; _database = await _initDB('egg_bookings.db'); return _database!; } Future _initDB(String filePath) async { final dbPath = await getDatabasesPath(); final path = join(dbPath, filePath); return openDatabase( path, version: 1, onCreate: _createDB, ); } Future _createDB(Database db, int version) async { await db.execute(''' CREATE TABLE bookings ( id INTEGER PRIMARY KEY AUTOINCREMENT, date TEXT NOT NULL, customer_name TEXT NOT NULL, marans INTEGER NOT NULL DEFAULT 0, araucana INTEGER NOT NULL DEFAULT 0, olive INTEGER NOT NULL DEFAULT 0, note TEXT NOT NULL DEFAULT '' ) '''); } Future>> getAllBookings() async { final db = await instance.database; return db.query( 'bookings', orderBy: 'date ASC, customer_name ASC', ); } Future insertBooking(Map booking) async { final db = await instance.database; return db.insert('bookings', booking); } Future updateBooking(Map booking) async { final db = await instance.database; return db.update( 'bookings', booking, where: 'id = ?', whereArgs: [booking['id']], ); } Future deleteBooking(int id) async { final db = await instance.database; return db.delete( 'bookings', where: 'id = ?', whereArgs: [id], ); } Future close() async { final db = await instance.database; db.close(); } }