test base project

This commit is contained in:
Azmat-7860
2026-09-15 09:09:11 +05:30
commit 8094da30c4
471 changed files with 27174 additions and 0 deletions
+128
View File
@@ -0,0 +1,128 @@
import 'dart:async';
import 'dart:io';
import 'package:authsec_flutter_hybrid/LocalStorage/TableQuery.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
class DatabaseHelper {
DatabaseHelper.internal();
static final DatabaseHelper instance = DatabaseHelper.internal();
TableQuery tablequery = TableQuery();
// factory DatabaseHelper() => instance;
static DatabaseHelper? _instance;
static Database? _database;
DatabaseHelper._privateConstructor();
factory DatabaseHelper() {
_instance ??= DatabaseHelper._privateConstructor();
return _instance!;
}
Future<Database> get database async {
if (_database != null) {
print('get database ... $_database');
return _database!;
}
_database = await initDatabase();
return _database!;
}
Future<Database> initDatabase() async {
try {
Directory directory = await getApplicationDocumentsDirectory();
String path = join(directory.path, 'my_database.db');
print('database path is $path');
// final db = await openDatabase('my_database.db');
var openDb = await openDatabase(
path,
version: 1,
onCreate: (db, version) => _createDatabaseTables(db),
onUpgrade: (db, int oldversion, int newversion) async {
if (oldversion < newversion) {
print("Version Upgrade");
}
},
);
// Check if the table exists
// var tableResult = await openDb.query('sqlite_master',
// columns: ['name'],
// where: 'type = ? AND name = ?',
// whereArgs: ['table', 'company']);
// if (tableResult.isEmpty) {
// print('Table does not exist');
// } else {
// print('table data is $tableResult');
// print('company Table exists');
// }
print('open db is...... ${openDb.database}');
return openDb;
} catch (e) {
print('Error initializing database: $e');
rethrow; // rethrow the error to see the full stack trace
}
}
Future<void> _createDatabaseTables(Database db) async {
tablequery.createOtherTable(db);
}
// create other table
// Future<void> _createOtherTable(Database db) async {
// _createTable(db, 'research_status', 'status_name');
// }
// Future<void> _createTable(
// Database db, String tableName, String fieldName) async {
// var tableExists = await _isTableExists(db, tableName);
// if (!tableExists) {
// print('$tableName making.....');
// await db.execute(
// '''
// CREATE TABLE $tableName (
// id INTEGER PRIMARY KEY AUTOINCREMENT,
// accountId TEXT,
// createdAt TEXT,
// createdBy TEXT,
// updatedAt TEXT,
// updatedBy TEXT,
// extn1 TEXT,
// extn2 TEXT,
// extn3 TEXT,
// extn4 TEXT,
// extn5 TEXT,
// extn6 TEXT,
// extn7 TEXT,
// extn8 TEXT,
// extn9 TEXT,
// extn10 TEXT,
// extn11 TEXT,
// extn12 TEXT,
// extn13 TEXT,
// extn14 TEXT,
// extn15 TEXT,
// active INTEGER,
// description TEXT,
// $fieldName TEXT
// )''');
// } else {
// print('$tableName table exist');
// }
// }
// Future<bool> _isTableExists(Database db, String tableName) async {
// var result = await db.rawQuery(
// 'SELECT * FROM sqlite_master WHERE type = ? AND name = ?',
// ['table', tableName],
// );
// return result.isNotEmpty;
// }
}
+100
View File
@@ -0,0 +1,100 @@
import 'package:sqflite/sqflite.dart';
class TableQuery {
Future<void> createOtherTable(Database db) async {
// Table Query
// OLD: _createGauravt2(db, 'Gauravt2'); // demo table from old template - disabled for clean base - by Azmat
// OLD: _createGauravtest1(db, 'Gauravtest1'); // demo table from old template - disabled for clean base - by Azmat
}
// Table Query Data
Future<void> _createGauravt2(Database db, String tableName) async {
var tableExists = await _isTableExists(db, tableName);
if (!tableExists) {
print('$tableName making.....');
await db.execute(
'''
CREATE TABLE $tableName (
id INTEGER PRIMARY KEY AUTOINCREMENT,
accountId TEXT,
createdAt TEXT,
createdBy TEXT,
updatedAt TEXT,
updatedBy TEXT,
extn1 TEXT,
extn2 TEXT,
extn3 TEXT,
extn4 TEXT,
extn5 TEXT,
extn6 TEXT,
extn7 TEXT,
extn8 TEXT,
extn9 TEXT,
extn10 TEXT,
extn11 TEXT,
extn12 TEXT,
extn13 TEXT,
extn14 TEXT,
extn15 TEXT,
phone TEXT,
nme TEXT,
imageupload TEXT,
)''');
} else {
print('$tableName table exist');
}
}
Future<void> _createGauravtest1(Database db, String tableName) async {
var tableExists = await _isTableExists(db, tableName);
if (!tableExists) {
print('$tableName making.....');
await db.execute(
'''
CREATE TABLE $tableName (
id INTEGER PRIMARY KEY AUTOINCREMENT,
accountId TEXT,
createdAt TEXT,
createdBy TEXT,
updatedAt TEXT,
updatedBy TEXT,
extn1 TEXT,
extn2 TEXT,
extn3 TEXT,
extn4 TEXT,
extn5 TEXT,
extn6 TEXT,
extn7 TEXT,
extn8 TEXT,
extn9 TEXT,
extn10 TEXT,
extn11 TEXT,
extn12 TEXT,
extn13 TEXT,
extn14 TEXT,
extn15 TEXT,
college TEXT,
Name TEXT,
)''');
} else {
print('$tableName table exist');
}
}
Future<bool> _isTableExists(Database db, String tableName) async {
var result = await db.rawQuery(
'SELECT * FROM sqlite_master WHERE type = ? AND name = ?',
['table', tableName],
);
return result.isNotEmpty;
}
}
+97
View File
@@ -0,0 +1,97 @@
import 'package:sqflite/sqflite.dart';
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
// OLD: import 'databasehelper.dart'; // wrong case fails on Linux Docker - by Azmat
import 'DatabaseHelper.dart'; // fixed case capital D+H for Linux build - by Azmat
class UniController {
final conn = DatabaseHelper.instance;
// get entity
Future<List<Map<String, dynamic>>> getentities(String tableName) async {
Database db = await conn.database;
return await db.query(tableName);
}
// insert
Future<int> insertEntity(
Map<String, dynamic> entity, String tableName) async {
Database db = await conn.database;
// entity['active'] = entity['active'] ? 1 : 0;
// Insert data
var entityId = await db.insert(tableName, entity);
if (entityId != null && entityId > 0) {
print('$tableName Id data is inserted. $tableName Id ID: $entityId');
} else {
print('Failed to insert $tableName.');
}
return entityId;
}
// insert multiple table
Future<void> insertEntities(
List<Map<String, dynamic>> entities, String tableName) async {
Database db = await conn.database;
Batch batch = db.batch();
print('multiple entity is com is $entities');
for (var entity in entities) {
insertEntity(entity, tableName);
}
await batch.commit();
}
// update Entity
Future<int> update(String tableName, int entityId,
Map<String, dynamic> updatedEntity) async {
Database db = await conn.database;
int rowsAffected = await db.update(tableName, updatedEntity,
where: 'id = ?', whereArgs: [entityId]);
if (rowsAffected > 0) {
print('$tableName data updated successfully.');
} else {
print('Failed to update $tableName data.');
}
return rowsAffected;
}
// Deleting entity
Future<int> delete(String tableName, int entityId) async {
Database db = await conn.database;
// Delete the company
int rowsAffected =
await db.delete(tableName, where: 'id = ?', whereArgs: [entityId]);
if (rowsAffected > 0) {
print('$tableName data deleted successfully.');
} else {
print('Failed to delete comp $tableName any data.');
}
return rowsAffected;
}
// get count
Future<int> getDataCount(String tableNmae) async {
Database db = await conn.database;
// Get the count of rows in the company table
int count = Sqflite.firstIntValue(
await db.rawQuery('SELECT COUNT(*) FROM $tableNmae'))!
.toInt();
print('Number of $tableNmae in the table: $count');
return count;
}
}
+168
View File
@@ -0,0 +1,168 @@
// import 'dart:io';
// import 'package:connectivity/connectivity.dart';
// import 'package:sqflite_common_ffi/sqflite_ffi.dart';
// import '../../providers/token_manager.dart';
// import '../../resources/api_constants.dart';
// import 'UniController.dart';
// import 'companycontroller.dart';
// import 'databasehelper.dart';
// class LocalSyncronizationData {
// final String baseUrl = ApiConstants.baseUrl;
// final UniController uniController = UniController();
// final companycontroller companyController = companycontroller();
// final conn = DatabaseHelper.instance;
// static Future<bool> isInternet() async {
// var connectivityResult = await (Connectivity().checkConnectivity());
// if (connectivityResult == ConnectivityResult.mobile) {
// final result = await InternetAddress.lookup('www.google.com');
// if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
// print('mobile network connected');
// return true;
// } else {
// return false;
// }
// // if (await DataConnectionChecker().hasConnection) {
// // print("Mobile data detected & internet connection confirmed.");
// // return true;
// // }else{
// // print('No internet :( Reason:');
// // return false;
// // }
// } else if (connectivityResult == ConnectivityResult.wifi) {
// final result = await InternetAddress.lookup('www.google.com');
// if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
// print('wifi connected');
// return true;
// } else {
// print('wifi not connected');
// return false;
// }
// } else {
// print(
// "Neither mobile data or WIFI detected, not internet connection found.");
// return false;
// }
// }
// // Future saveCompanyToMysql() async {
// // Database db = await conn.database;
// // final token = await TokenManager.getToken();
// // print('company db is $db');
// // final List<Map<String, dynamic>> localEntities =
// // await db.query('company', orderBy: 'id DESC');
// // if (localEntities.isNotEmpty) {
// // final entities = (localEntities).cast<Map<String, dynamic>>();
// // for (var element in entities) {
// // companyService.createEntity1(token!, element);
// // }
// // }
// // }
// // for research status sync
// Future fetchResearchStatusData() async {
// List userList = [];
// Database db = await conn.database;
// try {
// final List<Map<String, dynamic>> localEntities =
// await db.query('research_status', orderBy: 'id DESC');
// if (localEntities.isNotEmpty) {
// final entities = (localEntities).cast<Map<String, dynamic>>();
// for (var element in entities) {
// userList.add(element);
// }
// }
// } catch (e) {
// print(e.toString());
// }
// return userList;
// }
// Future<List<Map<String, dynamic>>> fetchAllInfo() async {
// Database db = await conn.database;
// List<Map<String, dynamic>> researchList = [];
// try {
// final maps = await db.query('research_status');
// for (var item in maps!) {
// researchList.add(item);
// }
// } catch (e) {
// print(e.toString());
// }
// return researchList;
// }
// Future saveReserachToMysql(List researchList) async {
// final token = await TokenManager.getToken();
// for (var i = 0; i < researchList.length; i++) {
// Map<String, dynamic> data = {
// "id": researchList[i]['id'].toString(),
// "status_name": researchList[i]['status_name'],
// "description": researchList[i]['description'],
// "active": researchList[i]['active'],
// };
// final response = researchService.createEntity1(token!, data);
// print('eserach res is $response');
// }
// }
// // from online to offline for research status
// Future fetchResearchStatusDataOnline() async {
// List userList = [];
// Database db = await conn.database;
// final token = await TokenManager.getToken();
// try {
// final List<Map<String, dynamic>> entities =
// await researchService.getEntities1(token!);
// if (entities.isNotEmpty) {
// for (var element in entities) {
// userList.add(element);
// }
// }
// } catch (e) {
// print(e.toString());
// }
// return userList;
// }
// Future<List<Map<String, dynamic>>> fetchReserachOnlineInfo() async {
// Database db = await conn.database;
// List<Map<String, dynamic>> researchList = [];
// final token = await TokenManager.getToken();
// try {
// final List<Map<String, dynamic>> maps =
// await researchService.getEntities1(token!);
// for (var item in maps!) {
// researchList.add(item);
// }
// } catch (e) {
// print(e.toString());
// }
// return researchList;
// }
// Future saveReserachToMysqlOnline(List list) async {
// for (var element in list) {
// uniController.insertEntity(element, 'research_status');
// }
// }
// }