class Collection { Collection({required this.name, int? createdAt}) : createdAt = createdAt ?? DateTime.now().millisecondsSinceEpoch; factory Collection.fromJson(Map json) => Collection( name: json['name'] as String, createdAt: json['createdAt'] as int, ); int createdAt; // used as Id with millisecondsSinceEpoch String name; @override bool operator ==(Object other) { if (other is Collection) { return hashCode == other.hashCode; } else { return false; } } @override int get hashCode => id.hashCode; int get id => createdAt; DateTime get createdDate => DateTime.fromMillisecondsSinceEpoch(createdAt); Map toJson() => {'name': name, 'createdAt': createdAt}; Collection copyWith({String? name}) { return Collection(name: name ?? this.name, createdAt: createdAt); } }