53 lines
1.9 KiB
Dart
53 lines
1.9 KiB
Dart
import 'package:drift/drift.dart';
|
|
|
|
/// Search history table: stores the last 50 search queries.
|
|
class SearchHistory extends Table {
|
|
IntColumn get id => integer().autoIncrement()();
|
|
TextColumn get query => text()();
|
|
RealColumn get latitude => real().nullable()();
|
|
RealColumn get longitude => real().nullable()();
|
|
IntColumn get timestamp => integer()(); // Unix epoch seconds
|
|
}
|
|
|
|
/// Favorites table: stores user-saved places.
|
|
class Favorites extends Table {
|
|
IntColumn get id => integer().autoIncrement()();
|
|
IntColumn get osmId => integer().nullable()();
|
|
TextColumn get osmType => text().nullable()(); // 'N', 'W', or 'R'
|
|
TextColumn get name => text()();
|
|
TextColumn get note => text().nullable()();
|
|
TextColumn get groupName =>
|
|
text().withDefault(const Constant('Favorites'))();
|
|
RealColumn get latitude => real()();
|
|
RealColumn get longitude => real()();
|
|
TextColumn get addressJson => text().nullable()(); // JSON-encoded address
|
|
IntColumn get createdAt => integer()(); // Unix epoch seconds
|
|
IntColumn get updatedAt => integer()(); // Unix epoch seconds
|
|
}
|
|
|
|
/// Offline regions table: tracks downloaded offline regions on the device.
|
|
class OfflineRegions extends Table {
|
|
TextColumn get id => text()();
|
|
TextColumn get name => text()();
|
|
RealColumn get minLat => real()();
|
|
RealColumn get minLon => real()();
|
|
RealColumn get maxLat => real()();
|
|
RealColumn get maxLon => real()();
|
|
IntColumn get tilesSizeBytes => integer()();
|
|
IntColumn get routingSizeBytes => integer()();
|
|
IntColumn get poisSizeBytes => integer()();
|
|
IntColumn get downloadedAt => integer()(); // Unix epoch seconds
|
|
IntColumn get lastUpdated => integer()(); // Unix epoch seconds (from backend)
|
|
|
|
@override
|
|
Set<Column> get primaryKey => {id};
|
|
}
|
|
|
|
/// Settings table: key-value storage for user preferences.
|
|
class Settings extends Table {
|
|
TextColumn get key => text()();
|
|
TextColumn get value => text()();
|
|
|
|
@override
|
|
Set<Column> get primaryKey => {key};
|
|
}
|