Kapcsolat menü és a hozzá tartozó funkciók.

This commit is contained in:
2026-07-08 13:32:04 +02:00
parent 7b35ed2939
commit b1efaff34a
14 changed files with 1158 additions and 10 deletions
+49 -1
View File
@@ -43,7 +43,7 @@ class AppDatabase {
final path = p.join(dbDir.path, 'terepi_seged.db');
return openDatabase(path,
version: 4,
version: 5,
onConfigure: (db) => db.execute('PRAGMA foreign_keys = ON'),
onCreate: _onCreate,
onUpgrade: _onUpgrade);
@@ -252,6 +252,7 @@ class AppDatabase {
'CREATE INDEX idx_imp_layers_project ON imported_layers(project_id)');
await _createStakeoutTable(db);
await _createContactsOutbox(db);
// Alap projekt létrehozása az első indításhoz
final now = DateTime.now().toIso8601String();
@@ -284,6 +285,9 @@ class AppDatabase {
if (oldVersion < 4) {
await _migrateToV4(db);
}
if (oldVersion < 5) {
_createContactsOutbox(db);
}
}
Future<void> _migrateToV4(Database db) async {
@@ -1277,4 +1281,48 @@ class AppDatabase {
[correctId]);
}
}
Future<void> _createContactsOutbox(Database db) async {
await db.execute('''
CREATE TABLE IF NOT EXISTS contacts_outbox (
local_uuid TEXT PRIMARY KEY,
name TEXT NOT NULL,
address TEXT NOT NULL DEFAULT '',
phone TEXT NOT NULL DEFAULT '',
email TEXT NOT NULL DEFAULT '',
note TEXT NOT NULL DEFAULT '',
created_at TEXT NOT NULL
)
''');
}
Future<void> insertPendingContact(Map<String, dynamic> row) async {
final db = await database;
await db.insert('contacts_outbox', row);
}
Future<List<Map<String, dynamic>>> listPendingContacts() async {
final db = await database;
return db.query('contacts_outbox', orderBy: 'created_at ASC');
}
Future<void> updatePendingContact(
String localUuid, Map<String, dynamic> fields) async {
final db = await database;
await db.update('contacts_outbox', fields,
where: 'local_uuid = ?', whereArgs: [localUuid]);
}
Future<void> deletePendingContact(String localUuid) async {
final db = await database;
await db.delete('contacts_outbox',
where: 'local_uuid = ?', whereArgs: [localUuid]);
}
Future<int> countPendingContacts() async {
final db = await database;
return Sqflite.firstIntValue(
await db.rawQuery('SELECT COUNT(*) FROM contacts_outbox')) ??
0;
}
}