Kml, kmz és geojson import és térképi megjelnítésük.
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
import 'package:terepi_seged/enums/layer_import_source_type.dart';
|
||||
|
||||
class ImportedLayerMeta {
|
||||
final String id;
|
||||
final String name;
|
||||
final LayerImportSourceType sourceType;
|
||||
final String localPath; // fájl elérési út
|
||||
final String? storagePath; // Supabase Storage (megosztáskor)
|
||||
final bool isVisible;
|
||||
final int? projectId;
|
||||
final DateTime importedAt;
|
||||
final DateTime? syncedAt;
|
||||
|
||||
const ImportedLayerMeta({
|
||||
required this.id,
|
||||
required this.name,
|
||||
required this.sourceType,
|
||||
required this.localPath,
|
||||
this.storagePath,
|
||||
this.isVisible = true,
|
||||
this.projectId,
|
||||
required this.importedAt,
|
||||
this.syncedAt,
|
||||
});
|
||||
|
||||
bool get isSynced => storagePath != null;
|
||||
|
||||
Map<String, dynamic> toMap() => {
|
||||
'id': id,
|
||||
'name': name,
|
||||
'source_type': sourceType.name,
|
||||
'local_path': localPath,
|
||||
'storage_path': storagePath,
|
||||
'is_visible': isVisible ? 1 : 0,
|
||||
'project_id': projectId,
|
||||
'imported_at': importedAt.toIso8601String(),
|
||||
'synced_at': syncedAt?.toIso8601String(),
|
||||
};
|
||||
|
||||
factory ImportedLayerMeta.fromMap(Map<String, dynamic> m) =>
|
||||
ImportedLayerMeta(
|
||||
id: m['id'] as String,
|
||||
name: m['name'] as String,
|
||||
sourceType:
|
||||
LayerImportSourceType.values.byName(m['source_type'] as String),
|
||||
localPath: m['local_path'] as String,
|
||||
storagePath: m['storage_path'] as String?,
|
||||
isVisible: (m['is_visible'] as int) == 1,
|
||||
projectId: m['project_id'] as int?,
|
||||
importedAt: DateTime.parse(m['imported_at'] as String),
|
||||
syncedAt: m['synced_at'] != null
|
||||
? DateTime.parse(m['synced_at'] as String)
|
||||
: null,
|
||||
);
|
||||
|
||||
ImportedLayerMeta copyWith({
|
||||
bool? isVisible,
|
||||
String? storagePath,
|
||||
DateTime? syncedAt,
|
||||
}) =>
|
||||
ImportedLayerMeta(
|
||||
id: id,
|
||||
name: name,
|
||||
sourceType: sourceType,
|
||||
localPath: localPath,
|
||||
storagePath: storagePath ?? this.storagePath,
|
||||
isVisible: isVisible ?? this.isVisible,
|
||||
projectId: projectId,
|
||||
importedAt: importedAt,
|
||||
syncedAt: syncedAt ?? this.syncedAt,
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user