import 'dart:convert'; import 'package:flutter_ics_homescreen/export.dart'; @immutable class User { final String id; final String name; const User({ required this.id, required this.name, }); User copyWith({ String? id, String? name, }) { return User( id: id ?? this.id, name: name ?? this.name, ); } Map toMap() { return { 'id': id, 'name': name, }; } factory User.fromMap(Map map) { return User( id: map['id'] ?? '', name: map['name'] ?? '', ); } String toJson() => json.encode(toMap()); factory User.fromJson(String source) => User.fromMap(json.decode(source)); @override String toString() => 'User(id: $id, name: $name)'; @override bool operator ==(Object other) { if (identical(this, other)) return true; return other is User && other.id == id && other.name == name; } @override int get hashCode => id.hashCode ^ name.hashCode; }