80 lines
2.8 KiB
Dart
80 lines
2.8 KiB
Dart
/// 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;
|
||
}
|