diff --git a/lib/database/database.dart b/lib/database/database.dart index 8d9aea3..4a68ed8 100644 --- a/lib/database/database.dart +++ b/lib/database/database.dart @@ -1,181 +1,36 @@ -import 'package:path/path.dart'; -import 'package:sqflite/sqflite.dart'; -// Models import 'package:progetto_m335_flutter/model/note.dart'; -import 'package:progetto_m335_flutter/model/promemoria.dart'; -class NoteDatabase { - static final NoteDatabase instance = NoteDatabase._init(); +class Database{ + static final Database _instance = Database._init(); static Database? _database; - // Zero args constructor needed to extend this class - NoteDatabase(); - - NoteDatabase._init(); + Database._init(); Future get database async { if (_database != null) return _database!; - - _database = await _initDB('note.db'); + _database = await _initDB('database.db'); return _database!; } - Future _initDB(String filePath) async { - // On Android, it is typically data/data//databases. - // On iOS and MacOS, it is the Documents directory. - final databasePath = await getDatabasesPath(); - // Directory databasePath = await getApplicationDocumentsDirectory(); + Future _createDB(Database database) async{ + const integerPrimaryKeyAutoincrement = 'INTEGER PRIMARY KEY AUTOINCREMENT'; + const textNotNull = 'TEXT NOT NULL'; + const integerNotNull = 'INTEGER NOT NULL'; + const integer = 'INTEGER'; + const real = 'REAL'; + const text = 'TEXT'; - final path = join(databasePath, filePath); - return await openDatabase(path, version: 1, onCreate: _createDB); - } - Future _createDB(Database database, int version) async { - //check if the database is created - if (database.query(noteTable) != null) { - print("Database already created"); - - }else{ - print("demo data inserting"); - await database.execute('''CREATE TABLE promemoria ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - title TEXT NOT NULL, - creationDate TEXT NOT NULL, - lastModificationDate TEXT, - expirationDate TEXT, - description TEXT, - priority TEXT, - color TEXT -); + await database.execute(''' + CREATE TABLE $Note ( + ${Note.id} $integerPrimaryKeyAutoincrement, + + ) '''); - - await database.execute('''CREATE TABLE note ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - title TEXT NOT NULL, - creationDate TEXT NOT NULL, - lastModificationDate TEXT, - description TEXT -); - '''); - - print("database created"); - } - - - await fillDemoData(database, version); } - Future fillDemoData(Database database, int version) async { - - print("boh speriamo funzioni"); - // Add some fake accounts + execute(String s) { - - // Add fake categories - await database.execute(''' - INSERT INTO note ( - title, - creationDate, - lastModificationDate, - description - ) VALUES ( - 'Nota 2', - '2023-09-28', - '2023-09-28', - 'Questo è un esempio di nota 2.' - ) -'''); - - - await database.execute(''' - INSERT INTO note ( - title, - creationDate, - lastModificationDate, - description - ) VALUES ( - 'Nota 2', - '2023-09-28', - '2023-09-28', - 'Questo è un esempio di nota 2.' - ) -'''); - - // Add currencies - await database.execute(''' - INSERT INTO promemoria ( - title, - creationDate, - lastModificationDate, - expirationDate, - description, - priority, - color - ) VALUES ( - 'Promemoria 1', - '2023-09-27', - '2023-09-27', - '2023-10-05', - 'Questo è un esempio di promemoria 1.', - 'Alta', - 'Rosso' - ) -'''); - - // Add fake budgets - await database.execute(''' - INSERT INTO promemoria ( - title, - creationDate, - lastModificationDate, - expirationDate, - description, - priority, - color - ) VALUES ( - 'Promemoria 2', - '2023-09-28', - '2023-09-28', - '2023-10-10', - 'Questo è un esempio di promemoria 2.', - 'Media', - 'Verde' - ) -'''); - print("Demo data inserted"); } - - Future clearDatabase() async { - try { - await _database?.transaction((txn) async { - var batch = txn.batch(); - batch.delete(noteTable); - batch.delete(promemoriaTable); - await batch.commit(); - }); - } catch (error) { - throw Exception('DbBase.cleanDatabase: $error'); - } - } - - Future> selectAllPromemoria() async { - final db = await database; - - final List> maps = await db.query(promemoriaTable); - - return maps; - } - - Future close() async { - final database = await instance.database; - database.close(); - } - - // WARNING: FOR DEV/TEST PURPOSES ONLY!! - Future deleteDatabase() async { - final databasePath = await getDatabasesPath(); - final path = join(databasePath, 'note.db'); - databaseFactory.deleteDatabase(path); - } -} +} \ No newline at end of file diff --git a/lib/database/promemoria.dart b/lib/database/promemoria.dart new file mode 100644 index 0000000..66c8d27 --- /dev/null +++ b/lib/database/promemoria.dart @@ -0,0 +1,18 @@ +import 'dart:ui'; + +import 'base_entity.dart'; +import 'identifiers/enum/priority.dart'; +import 'identifiers/enum/color.dart'; + +class Note extends BaseEntity{ + static String id = BaseEntity.getId; + static String title = BaseEntity.getTitle; + static String creationDate = BaseEntity.getCreationDate; + + static String expirationDate = 'expirationDate'; + static String description = 'description'; + Priority priority = Priority.none; + Color color = Color.none; + +} +