70 lines
2.7 KiB
Dart
70 lines
2.7 KiB
Dart
/// 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<String, dynamic> 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),
|
||
|
|
);
|
||
|
|
}
|