You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Dart
		
	
import 'package:test_sa/models/base.dart';
 | 
						|
import 'package:test_sa/models/new_models/building.dart';
 | 
						|
 | 
						|
class Site extends Base {
 | 
						|
  Site({
 | 
						|
    this.id,
 | 
						|
    this.custName,
 | 
						|
    this.buildings,
 | 
						|
  }) : super(identifier: id?.toString() ?? '', name: custName); // Handle potential null id
 | 
						|
 | 
						|
  Site.fromJson(dynamic json) {
 | 
						|
    id = json['id'];
 | 
						|
    identifier = id?.toString() ?? ''; // Handle potential null id
 | 
						|
    custName = json['custName']?? json['siteName'];
 | 
						|
    name = custName;
 | 
						|
    if (json['buildings'] != null) {
 | 
						|
      buildings = [];
 | 
						|
      json['buildings'].forEach((v) {
 | 
						|
        buildings!.add(Building.fromJson(v)); // Use '!' since buildings is initialized here
 | 
						|
      });
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  num? id; // Now nullable
 | 
						|
  String? custName; // Now nullable
 | 
						|
  List<Building>? buildings; // Now nullable
 | 
						|
 | 
						|
  Site copyWith({
 | 
						|
    num? id, // Parameters are now nullable
 | 
						|
    String? custName,
 | 
						|
    List<Building>? buildings,
 | 
						|
  }) =>
 | 
						|
      Site(
 | 
						|
        id: id ?? this.id,
 | 
						|
        custName: custName ?? this.custName,
 | 
						|
        buildings: buildings ?? this.buildings,
 | 
						|
      );
 | 
						|
 | 
						|
  Map<String, dynamic> toJson({bool addBuildings = true}) {
 | 
						|
    final map = <String, dynamic>{};
 | 
						|
    map['id'] = id;
 | 
						|
    map['custName'] = custName;
 | 
						|
    if (addBuildings) {
 | 
						|
      if (buildings != null) {
 | 
						|
        map['buildings'] = buildings!.map((v) => v.toJson()).toList(); // Use '!' since buildings could be null
 | 
						|
      }
 | 
						|
    } else {
 | 
						|
      map['buildings'] = [];
 | 
						|
    }
 | 
						|
 | 
						|
    return map;
 | 
						|
  }
 | 
						|
}
 |