Files
MobilApp/lib/models/measured_record.dart
gitea_admin e801090e90
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 6s
Felvételek képének megjelenítése a Mérés menüpontbam
2026-09-09 02:05:10 +02:00

80 lines
2.8 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/// Egy mérési felvétel (lövés) a PC-szoftver által feltöltött
/// `terepi_seged_measure_records` táblából.
///
/// SZÁNDÉKOSAN nincs helyi tükör — ez a PC-szoftverből folyamatosan,
/// élőben érkező adat, mindig friss, sosem gyorsítótárazott (lásd
/// MeasureDataService.watchRecords).
class MeasuredRecord {
final int id;
final String projectId;
final double? sourceLineNumber;
final double? sourcePointNumber;
final DateTime measuredAt;
final double? eovX;
final double? eovY;
final int? gpsTimeInMicroseconds;
final int? minReceiverPointNumber;
final int? minReceiverPointFduNumber;
final int? maxReceiverPointNumber;
final int? maxReceiverPointFduNumber;
final String? imagePath;
final String? imageUrl;
final int? ffid;
final int? recordType;
final int? recordSerialNumberOfSourcePoint;
const MeasuredRecord({
required this.id,
required this.projectId,
this.sourceLineNumber,
this.sourcePointNumber,
required this.measuredAt,
this.eovX,
this.eovY,
this.gpsTimeInMicroseconds,
this.minReceiverPointNumber,
this.minReceiverPointFduNumber,
this.maxReceiverPointNumber,
this.maxReceiverPointFduNumber,
this.imagePath,
this.imageUrl,
this.ffid,
this.recordType,
this.recordSerialNumberOfSourcePoint,
});
factory MeasuredRecord.fromMap(Map<String, dynamic> m) => MeasuredRecord(
id: m['id'] as int,
projectId: m['project_id'] as String,
sourceLineNumber: (m['source_line_number'] as num?)?.toDouble(),
sourcePointNumber: (m['source_point_number'] as num?)?.toDouble(),
measuredAt: DateTime.parse(m['measured_at'] as String),
eovX: (m['eov_x'] as num?)?.toDouble(),
eovY: (m['eov_y'] as num?)?.toDouble(),
gpsTimeInMicroseconds: (m['gps_time_in_microseconds'] as num?)?.toInt(),
minReceiverPointNumber:
(m['min_receiver_point_number'] as num?)?.toInt(),
minReceiverPointFduNumber:
(m['min_receiver_point_fdu_number'] as num?)?.toInt(),
maxReceiverPointNumber:
(m['max_receiver_point_number'] as num?)?.toInt(),
maxReceiverPointFduNumber:
(m['max_receiver_point_fdu_number'] as num?)?.toInt(),
imagePath: m['image_path'] as String?,
imageUrl: m['image_url'] as String?,
ffid: (m['ffid'] as num?)?.toInt(),
recordType: (m['record_type'] as num?)?.toInt(),
recordSerialNumberOfSourcePoint:
(m['record_serial_number_of_source_point'] as num?)?.toInt(),
);
bool get hasImage =>
(imageUrl != null && imageUrl!.isNotEmpty) ||
(imagePath != null && imagePath!.isNotEmpty);
String? get geophoneRange =>
(minReceiverPointNumber != null && maxReceiverPointNumber != null)
? '$minReceiverPointNumber–$maxReceiverPointNumber'
: null;
}