databaseServiceTemplate top-level property

String databaseServiceTemplate
getter/setter pair

Implementation

String databaseServiceTemplate = '''

import 'dart:io';
import 'package:sqflite/sqflite.dart';
import 'package:path_provider/path_provider.dart';
import 'package:path/path.dart';
import './DatabaseModels.dart';

class DatabaseService {
  DatabaseService() : super();

  static final _databaseName = "DATABASE_NAME.db";
  static final _tableName = "avengers";


  static final _databaseVersion = 1;

  DatabaseService._privateConstructor();
  static final DatabaseService instance = DatabaseService._privateConstructor();

  static Database? _database;

  Future<Database> get database async {
    if (_database != null) return _database!;
    _database = await initDatabase();
    return _database!;
  }

  initDatabase() async {
    Directory documentDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentDirectory.path, _databaseName);
    return await openDatabase(path,
        version: _databaseVersion, onCreate: _onCreate);
  }

  Future _onCreate(Database db, int version) async {
    //--id INTEGER PRIMARY KEY AUTOINCREMENT,
    await db.execute("""
        CREATE TABLE avengers(
          id INTEGER PRIMARY KEY AUTOINCREMENT,
          name text ,
          full_name text,
          gender text,
          email text,
          is_can_swim int,
          is_can_fly int,
          status int,
          created_at text
        )
      """);

  }

  Future<List<TheAvengersModels>?> getAvengers() async {
    Database db = await database;
    var res = await db.query(_tableName, orderBy: 'id asc');
    List<TheAvengersModels> packageList =
        res.map((item) => TheAvengersModels.fromMap(item)).toList();
    return packageList;
  }

  Future<TheAvengersModels?> getSingleAvenger(int id) async {
    Database db = await database;
    var res = await db.query(_tableName, where: "id = ?", whereArgs: [id], limit: 1);
      return TheAvengersModels.fromMap(res.first);
  }

  Future<int> insertAvenger(TheAvengersModels model) async {
    Database db = await database;
    var res = await db.insert(_tableName, model.toMap());
    return res;
  }

  Future<int> updateAvenger(int id, TheAvengersModels model) async {
    Database db = await database;
    var res = await db.update(_tableName, model.toMap(), where: "id = ?", whereArgs: [id]);
    return res;
  }

  Future<int> deleteAvenger(int id, TheAvengersModels model) async {
    Database db = await database;
    var res = await db.delete(_tableName, where: "id = ?", whereArgs: [id]);
    return res;
  }
}
''';