1+ // 📦 Package imports:
12import 'package:path/path.dart' ;
3+ import 'package:sqflite/sqflite.dart' ;
4+
5+ // 🌎 Project imports:
26import 'package:pdf_indexing/constants.dart' ;
37import 'package:pdf_indexing/functions/utils.dart' as Utils;
4- import 'package:pdf_indexing/pdfModel.dart' ;
5- import 'package:sqflite/sqflite.dart' ;
8+ import 'package:pdf_indexing/model/pdfModel.dart' ;
69
10+ /// 🗄️🛠️ Database Helper Class
711class DBHelper {
12+ /// 🗄️ [Database?] 🗿 🕵️ variable
813 static Database ? _db;
914
15+ /// 🗞️ getter for [_db] , which initiate Database if null
1016 Future <Database ?> get db async {
1117 if (_db != null ) {
1218 return _db;
@@ -16,20 +22,25 @@ class DBHelper {
1622 }
1723 }
1824
25+ /// 🗑️ Delete Row by [filename] from 🗄️ Database
1926 void deleteFromFilename (String filename) async {
2027 Database ? dbClient = await db;
2128 int rowsDeleted = await dbClient!
2229 .delete (kPdfTableName, where: "filename = ?" , whereArgs: [filename]);
2330 print ("$rowsDeleted Rows Deleted" );
2431 }
2532
33+ /// 🗑️ Delete Row by [path] from 🗄️ Database
2634 void deleteFromPath (String path) async {
2735 Database ? dbClient = await db;
2836 int rowsDeleted = await dbClient!
2937 .delete (kPdfTableName, where: "path = ?" , whereArgs: [path]);
3038 print ("$rowsDeleted Rows Deleted" );
3139 }
3240
41+ /// ⏩🔠 Return String, containing [folder] data
42+ ///
43+ /// Where path = [path]
3344 Future <String > getFolder ({required String path}) async {
3445 Database ? dbClient = await db;
3546 List <Map > results = await dbClient!
@@ -41,6 +52,10 @@ class DBHelper {
4152 }
4253 }
4354
55+ /// ⏩#️⃣ Return String, containing [hash] String
56+ ///
57+ /// Where hash = [hash]
58+ /// if hash doesn't exist return empty String ''
4459 Future <String > getSHA1HashDB ({required String hash}) async {
4560 Database ? dbClient = await db;
4661 List <Map > results = await dbClient!
@@ -53,6 +68,9 @@ class DBHelper {
5368 }
5469 }
5570
71+ /// ⏩🏷️ Return String, containing [tags] data
72+ ///
73+ /// Where path = [path]
5674 Future <String > getTags ({required String path}) async {
5775 Database ? dbClient = await db;
5876 List <Map > results = await dbClient!
@@ -64,22 +82,29 @@ class DBHelper {
6482 }
6583 }
6684
67- //Select query for all file paths
85+ /// ⏩🗄️ Return Database
86+ ///
87+ /// It open Database in 📁 Directory and Create Table in 🗄️ Database on first run
6888 Future <Database > initDB () async {
6989 String storagePath = await Utils .getStoragePath ();
7090 Database db = await openDatabase (join (storagePath, kDBFileName),
7191 version: 1 , onCreate: _onCreate);
7292 return db;
7393 }
7494
75- //Select query for file paths with where condition - seaching in the text column
95+ /// ⏩[🗺️] Return [Map,]
96+ ///
97+ /// Return [path] from all Rows
7698 Future <List <Map >> queryForAllfilePaths () async {
7799 Database ? dbClient = await db;
78100 return await dbClient!
79101 .query (kPdfTableName, columns: ['path' ], orderBy: kPathAsc);
80102 }
81103
82- // Select query for getting sha1 hash entry of the file
104+ /// ⏩[🗺️] Return [Map,]
105+ ///
106+ /// Return [path] from Rows
107+ /// Where pdfText,filename,tags contains [text]
83108 Future <List <Map >> queryForFilePathsWithCondition (String text) async {
84109 Database ? dbClient = await db;
85110 return await dbClient! .query (
@@ -90,22 +115,26 @@ class DBHelper {
90115 );
91116 }
92117
118+ /// 📥 Save [folder] data in the 🗄️ Database
93119 void saveFolder ({required String path, required String folder}) async {
94120 Database ? dbClient = await db;
95121 dbClient!
96122 .update (kPdfTableName, {'folder' : '$folder ' }, where: "path = '$path '" );
97123 }
98124
125+ /// 📥 Save [pdfModel] data in the 🗄️ Database
99126 void savePdf (PDFModel pdfModel) async {
100127 Database ? dbClient = await db;
101128 dbClient! .insert (kPdfTableName, pdfModel.toMap ());
102129 }
103130
131+ /// 📥 Save [tags] data in the 🗄️ Database
104132 void saveTags ({required String path, required String tags}) async {
105133 Database ? dbClient = await db;
106134 dbClient! .update (kPdfTableName, {'tags' : '$tags ' }, where: "path = '$path '" );
107135 }
108136
137+ /// ➕ Create 🗄️ Database Table if not Created
109138 void _onCreate (Database db, int version) async {
110139 await db.execute (kCreateTableQuery);
111140 }
0 commit comments