Observation constructor
- required String id,
- required String speciesScientificName,
- required int count,
- required Location location,
- required DateTime observedAt,
- String? notes,
- String? userId,
- int? locationAccuracyM,
- String? dataSource,
- String? imageFilename,
- String? modelId,
- double? confidence,
- Map<
String, dynamic> ? metadata,
Creates a new Observation instance.
Required fields ensure minimum data quality for surveillance and research purposes.
Throws ArgumentError if required fields are invalid.
Implementation
Observation({
required this.id,
required this.speciesScientificName,
required this.count,
required this.location,
required this.observedAt,
this.notes,
this.userId,
this.locationAccuracyM,
this.dataSource,
this.imageFilename,
this.modelId,
this.confidence,
this.metadata,
}) : assert(id.isNotEmpty, 'Observation ID cannot be empty'),
assert(speciesScientificName.isNotEmpty, 'Species name cannot be empty'),
assert(count > 0, 'Count must be positive'),
assert(confidence == null || (confidence >= 0.0 && confidence <= 1.0),
'Confidence must be between 0.0 and 1.0'),
assert(locationAccuracyM == null || locationAccuracyM >= 0,
'Location accuracy cannot be negative');