/// Egy ingatlan (helyrajzi szám) a levél-pipeline importjából. /// /// SZÁNDÉKOSAN nincs hozzá helyi tábla/toMap — ez a funkció tisztán /// online, a `terepi_seged_field_properties_view` élő lekérdezéséből él, /// sosem kerül a készülék adatbázisába. class FieldProperty { final String id; final String projectId; final String publicationId; final String settlement; final String parcelNumber; final String normalizedParcelNumber; final String areaType; final String mailingStatus; final int? totalAreaSquareMeters; final double? totalCadastralIncome; final String? caseIdentifier; final int recipientCount; final int selectedRecipientCount; final int generatedLetterCount; final int sentLetterCount; final String ownerNames; final String landUseSummary; final DateTime createdAt; const FieldProperty({ required this.id, required this.projectId, required this.publicationId, required this.settlement, required this.parcelNumber, required this.normalizedParcelNumber, required this.areaType, required this.mailingStatus, this.totalAreaSquareMeters, this.totalCadastralIncome, this.caseIdentifier, required this.recipientCount, required this.selectedRecipientCount, required this.generatedLetterCount, required this.sentLetterCount, required this.ownerNames, this.landUseSummary = '', required this.createdAt, }); factory FieldProperty.fromMap(Map m) => FieldProperty( id: m['id'] as String, projectId: m['project_id'] as String, publicationId: m['publication_id'] as String, settlement: m['settlement'] as String? ?? '', parcelNumber: m['parcel_number'] as String? ?? '', normalizedParcelNumber: m['normalized_parcel_number'] as String? ?? '', areaType: m['area_type'] as String? ?? '', mailingStatus: m['mailing_status'] as String? ?? 'unknown', totalAreaSquareMeters: (m['total_area_square_meters'] as num?)?.toInt(), totalCadastralIncome: (m['total_cadastral_income'] as num?)?.toDouble(), caseIdentifier: m['case_identifier'] as String?, recipientCount: (m['recipient_count'] as num?)?.toInt() ?? 0, selectedRecipientCount: (m['selected_recipient_count'] as num?)?.toInt() ?? 0, generatedLetterCount: (m['generated_letter_count'] as num?)?.toInt() ?? 0, sentLetterCount: (m['sent_letter_count'] as num?)?.toInt() ?? 0, ownerNames: m['owner_names'] as String? ?? '', landUseSummary: m['land_use_summary'] as String? ?? '', createdAt: DateTime.parse(m['created_at'] as String), ); }